当前位置: 首页 > news >正文

Flutter开发 多孩子布局组件

标题

    • 1.Row 水平排列
    • 2.Column 垂直排列
    • 3.Flex
    • 4.Expanded
    • 5.Warp组件
    • 6.Stack

1.Row 水平排列

(1)MainAxisAlignment
主轴

属性说明
start从主轴的起点开始放置子元素
end从主轴的终点开始放置子元素
center将子元素放置在主轴的中心
spaceAround将主轴方向的空白区域均分,让子元素之间的空白区域相等,单首尾子元素的空白区域为其他空白区的一半

在这里插入图片描述

void main() {runApp(MyPage());
}class MyPage extends StatelessWidget {const MyPage({super.key});Widget build(BuildContext context) {return MaterialApp(theme: ThemeData(), home: MyFul());}
}class MyState extends State {Row row = Row(children: [Text("目录1"), Text("目录2"), Text("目录3"), Text("目录4"), Text("目录5")],mainAxisAlignment: MainAxisAlignment.spaceAround,);Widget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text("Container"), centerTitle: true),body: row,);}
}class MyFul extends StatefulWidget {State<StatefulWidget> createState() {return MyState();}
}

(2)crossAxisAlignment
次轴

属性说明
start在交叉轴上起点处展示
end在交叉轴上终点处展示
center子元素在交叉轴上居中

2.Column 垂直排列

  Column column = Column(children: [Text("11111"),Text("11111"),Text("11111"),Text("11111"),Text("11111"),],mainAxisAlignment: MainAxisAlignment.spaceAround,//垂直方向为主轴);

在这里插入图片描述

3.Flex

row与Column的组合
在这里插入图片描述

class MyState extends State {Flex flex = Flex(direction: Axis.horizontal,children: [Text("data1"), Text("data2"), Text("data3"), Text("data4")],);Widget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text("Column"), centerTitle: true),body: flex,);}
}

4.Expanded

将子元素的宽度或高度扩展至充满主轴方向的空白空间。Expanded不是多孩子布局,经常与多孩子布局组件组合使用。
请添加图片描述

class MyState extends State {Row row = Row(children: [Expanded(flex: 1, child: TextField()), //flex相当于android的weightExpanded(flex: 0, child: Text("发送")),],);Widget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text("Flex"), centerTitle: true),body: row,);}
}

5.Warp组件

可以将其承载的子元素自动换行的组件。

在这里插入图片描述

class MyState extends State {Wrap wrap = Wrap(children: [OutlinedButton(onPressed: () {}, child: Text("data")),OutlinedButton(onPressed: () {}, child: Text("data")),OutlinedButton(onPressed: () {}, child: Text("data")),OutlinedButton(onPressed: () {}, child: Text("data")),OutlinedButton(onPressed: () {}, child: Text("data")),OutlinedButton(onPressed: () {}, child: Text("data")),OutlinedButton(onPressed: () {}, child: Text("data")),OutlinedButton(onPressed: () {}, child: Text("data")),OutlinedButton(onPressed: () {}, child: Text("data")),],);Widget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text("Flex"), centerTitle: true),body: wrap,);}
}

6.Stack

可以将其承载的子元素堆叠,

请添加图片描述

class MyState extends State {Stack stack = Stack(alignment: Alignment.bottomCenter,//对齐方式children: [CircleAvatar(radius: 50,backgroundImage: NetworkImage("https://pic.rmb.bdstatic.com/bjh/news/49fa0be5e4ab397fe5a04412d5cfe3f6.png",),),Text("直播中",style: TextStyle(backgroundColor: Colors.red, color: Colors.white),),],);Widget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text("Flex"), centerTitle: true),body: stack,);}
}

请添加图片描述

class MyState extends State {Stack stack = Stack(alignment: Alignment(0.8, 0.8),children: [CircleAvatar(radius: 50,backgroundImage: NetworkImage("https://pic.rmb.bdstatic.com/bjh/news/49fa0be5e4ab397fe5a04412d5cfe3f6.png",),),Text("V",style: TextStyle(backgroundColor: Colors.red, color: Colors.white),),],);Widget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text("Flex"), centerTitle: true),body: stack,);}
}

Alignment(0.8, 0.8)跟坐标有关系,(0,0)正好在图片中间。
请添加图片描述

http://www.xdnf.cn/news/1261819.html

相关文章:

  • 面向真实场景的定制化图像降质模型设计方案
  • 化工厂安全升级:分布式光纤传感的 “实时监测 + 精准预警” 方案
  • VRTE 的应用程序部署到Ubuntu上 报错:bash: ./rb_exmd: No such file or directory
  • 高效数据隔离方案:SpringBoot + JSqlParser 全解析!
  • [windows]torchsig 1.1.0 gr-spectrumdetect模块安装
  • 第七篇:动画基础:requestAnimationFrame循环
  • Java-反射
  • 【华为机试】63. 不同路径 II
  • 医防融合中心-智慧化慢病全程管理医疗AI系统开发(中)
  • VScode 文件标签栏多行显示
  • python之注册机制总结
  • 什么是ros功能包和ros节点
  • @CacheConfig​​当前类中所有缓存方法详解
  • Redis数据组织方式
  • electron 静默安装同时安装完成后自动启动(nsis)
  • 38-TS之类型保护
  • 3D TOF 视觉相机:工业视觉的破局者,重塑视觉感知的未来
  • ​​《深入浅出K-means算法:从原理到实战全解析》​预告(提纲)
  • 13. 搜索引擎-ElasticSearch
  • 学习Java的Day27
  • 初识排序(下)-- 讲解超详细
  • Effective C++ 条款30:透彻了解inlining的里里外外
  • MQTT与服务器通讯
  • 微软公布Windows 2030,要彻底淘汰鼠标、键盘
  • 控制建模matlab练习13:线性状态反馈控制器-②系统的能控性
  • conda或mamba install 相关软件报错
  • MySQL数据库操作练习
  • 电脑IP地址是“169.254.x.x”而无法上网的原因
  • Maven/Gradle常用命令
  • 如何将 Vue 前端、Hardhat 合约和 Node.js 后端集成到一个项目中