9、线性布局(Row和Column)
自定义的IconContainer
void main() {
runApp(MaterialApp(
theme: ThemeData(primarySwatch: Colors.yellow),
home: Scaffold(
appBar: AppBar(title: const Text("这是导航栏")),
body: MyApp(),
)));
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return IconContainer(Icons.ac_unit,color: Colors.yellow);
}
}
//自定义的IconContainer
class IconContainer extends StatelessWidget {
Color color;
IconData icon;
// IconContainer(this.icon ,{super.key,required this.color}); // 与下方效果一样
// IconContainer(this.icon ,{Key? key,required this.color}) : super(key: key);
IconContainer(this.icon ,{Key? key, this.color=Colors.red}) : super(key: key); //可传入颜色(也可以不用传入颜色)
@override
Widget build(BuildContext context) {
return Container(
alignment: Alignment.center, //内容居中
color: color,
height: 200,
width: 200,
child: Icon(icon,size: 50,),
);
}
}

mainAxisAlignment 用于指定子组件在主轴(水平方向)上的对齐方式
MainAxisAlignment.start(默认值):子组件将在主轴的起始位置对齐。
MainAxisAlignment.end:子组件将在主轴的末尾位置对齐。
MainAxisAlignment.center:子组件将在主轴的中心位置对齐。
MainAxisAlignment.spaceBetween:子组件将会均匀地分布在主轴上,首个和最后一个子组件分别与 Row 的起始和末尾位置对齐。
MainAxisAlignment.spaceAround:子组件将会均匀地分布在主轴上,子组件之间以及首个和最后一个子组件与 Row 的边界之间有相等的间距。
MainAxisAlignment.spaceEvenly:子组件将会均匀地分布在主轴上,子组件之间和首个、最后一个子组件与 Row 的边界之间的间距都相等。
MainAxisAlignment.spaceEvenly:子组件将会均匀地分布在主轴上,子组件之间和首个、最后一个子组件与 Row 的边界之间的间距都相等。
crossAxisAlignment 用于指定子组件在交叉轴(垂直方向)上的对齐方式(要有父容器)
CrossAxisAlignment.start:子组件将在交叉轴的起始位置对齐。
CrossAxisAlignment.end:子组件将在交叉轴的末尾位置对齐。
CrossAxisAlignment.center(默认值):子组件将在交叉轴的中心位置对齐。
CrossAxisAlignment.stretch:在交叉轴上拉伸子组件以匹配父容器的高度。
CrossAxisAlignment.baseline:子组件将使用 textDecorationStyle 属性构建一个水平基线对齐。
Row 水平布局组件
class MyRow extends StatelessWidget {
const MyRow({super.key});
@override
Widget build(BuildContext context) {
return Container(
width: double.infinity, //无穷的
height: double.infinity,
color: Color.fromARGB(255, 7, 189, 158),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, //X轴
crossAxisAlignment:CrossAxisAlignment.center, //相对与Container(父盒子) Y轴
children: [
IconContainer(Icons.ac_unit,color: Colors.yellow), //自定义的方法
IconContainer(Icons.home_max,color: Color.fromARGB(255, 226, 12, 47)),
IconContainer(Icons.ac_unit,color: Color.fromARGB(255, 9, 31, 155)),
],
),
);
}
}
Column垂直布局组件
class MyColumn extends StatelessWidget {
// const MyColumn({super.key});
const MyColumn({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
width: double.infinity, //无穷的
height: double.infinity,
color: Color.fromARGB(255, 7, 189, 158),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween, // Y轴
crossAxisAlignment:CrossAxisAlignment.end, //相对与Container X轴
children: [
IconContainer(Icons.ac_unit,color: Colors.yellow),
IconContainer(Icons.home_max,color: Color.fromARGB(255, 226, 12, 47)),
IconContainer(Icons.ac_unit,color: Color.fromARGB(255, 9, 31, 155)),
],
),
);
}
}
double.infifinity 和double.maxFinite
我想成为我的父母所允许的最大的(double.infinity)
一些小部件允许他们的孩子像他们想要的那样大。
9、线性布局(Row和Column)的更多相关文章
- Flutter 布局类组件:线性布局(Row和Column)
前言 所谓线性布局,即指沿水平或垂直方向排布子组件.Flutter中通过Row和Column来实现线性布局,并且它们都继承自弹性布局(Flex). 接口描述 Row({ Key key, // 表示子 ...
- 12.Quick QML-QML 布局(Row、Column、Grid、Flow和嵌套布局) 、Repeater对象
1.Row布局 Row中的item可以不需要使用anchors布局,就能通过行的形式进行布局. 并且item可以使用Positioner附加属性来访问有关其在Row中的位置及其他信息. 示例如下所示, ...
- Flutter 布局(七)- Row、Column详解
本文主要介绍Flutter布局中的Row.Column控件,详细介绍了其布局行为以及使用场景,并对源码进行了分析. 1. Row A widget that displays its children ...
- 从头学Android之Android布局管理:LinerLayout线性布局
LinerLayout线性布局: 这种布局方式是指在这个里面的控件元素显线性,我们可以通过setOrientation(int orientation)来指定线性布局的显示方式,其值有:HORIZON ...
- Android 线性布局(LinearLayout)相关官方文档 - 指南部分
Android 线性布局(LinearLayout)相关官方文档 - 指南部分 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用 ...
- Android-RelativeLayout(相对布局)、LinearLayout(线性布局)
RelativeLayout(相对布局):按照各子元素之间的位置关系完成布局. 定位:android:layout_above="@id/xxx" --将控件置于给定ID控件之上 ...
- Android-LinearLayout(线性布局)
布局:Android为我们提供了一个View和ViewGroup子类的集合.ViewGroup类是View的子类,也被称为Layout布局,它提供了流式布局.线性布局等多种布局方式.View是绘制在屏 ...
- android—-线性布局
android五大布局之线性布局. 1.线性布局的特点:各个子元素彼此连接,中间不留空白 而今天我们要讲解的就是第一个布局,LinearLayout(线性布局),我们屏幕适配的使用 用的比较多的就是L ...
- android学习之线性布局
效图如下 移通152余继彪 该布局使用了线性布局完成 父布局为线性布局,黄色和灰色部分为水平的线性布局,剩余50%部分为水平线性布局,该布局中包含了两个垂直的线性布局分别占了三分之1和三分之二
- android开发------编写用户界面之线性布局
一个好的应用程序离不开人性化的用户界面.在学习其他东西之前.理应先学习编写程序的布局(外观) 今天,我们就来学习android的UI布局----LinearLayout. LinearLayout,即 ...
随机推荐
- Thinking in Java 4th Edition Source Code
Thinking in Java 4th Edition Source Code Instructions for downloading, installing and testing the so ...
- Linux第二次周总结
第三章 用户管理 3.1 用户/组概览 Linux系统是多用户.多任务的分时操作系统,系统上每一个进程都有一个特定的文件,每个文件都被一个特定的用户所拥有.每个用户都属于一个用户组或者多个组,系统可以 ...
- 【XXE实战】——浅看两道CTF题
[XXE实战]--浅看两道CTF题 上一条帖子[XXE漏洞]原理及实践演示对XXE的一些原理进行了浅析,于是写了两道CTF题巩固一下,顺便也记录一下第一次写出来CTF.两道题都是在BUU上找的:[NC ...
- umicv cv-summary1-全连接神经网络模块化实现
全连接神经网络模块化实现 Linear与Relu单层实现 LossLayer实现 多层神经网络 不同梯度下降方法 Dropout层 今天这篇博文针对Assignment3的全连接网络作业,对前面学习的 ...
- CSS色域、色彩空间、CSS Color 4新标准
引言 近期,三大主流浏览器引擎均发布最新版本,支持W3C的CSS Color 4标准,包含新的取色方法color()和相应语法,可展示更多的色域及色彩空间,这意味着web端能展示更丰富更高清的色彩.虽 ...
- Python合并多个Excel文件中的指定sheet
本文将介绍一个用于合并多个Excel文件中指定sheet的Python代码.这个功能可以方便地整理和分析数据.我们将逐步解释代码的每个部分,并提供示例用法. 导入库 首先,我们导入了需要使用的三个库: ...
- angular,vue,react三大框架选型
三大框架,本质都是基于js的web应用(前端做的都是web应用包括移动)框架,他们都是帮助我们解决问题的工具,具体用哪个,要结合具体场景. 这三者中,Angular的适用领域相对窄一些,React可以 ...
- 二叉树、平衡二叉树、红黑树、B树、B+树
几种树的主要区别: 红黑树为二叉自平衡搜索树,深度大,多用于内存排序: B树为多路(多叉)搜索树,深度低,搜索数据时磁盘IO较少,多用于索引外存数据,只支持随机访问,不支持顺序访问: B+树是对B树的 ...
- vue 甘特图(附件):甘特图附件
甘特图样式: .gantt_container { border-color: transparent !important; .gantt_right { top: 0% !important; d ...
- 从一道题来看看golang中的slice作为参数时的现象
1.题目 最近看群友在群里问一道关于golang中slice的题,题目如下: package main import "fmt" func main() { k := []int{ ...