当前位置: 首页 > 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.dtcms.com/a/320463.html

相关文章:

  • 在 Debian 系统上安装 Redis服务
  • VRTE 的应用程序部署到Ubuntu上 报错:bash: ./rb_exmd: No such file or directory
  • Korg 电子琴 2025 高级电子琴手机版:专业的音乐创作与演奏工具
  • 平板探测器的主要技术指标
  • 电脑IP地址是“169.254.x.x”而无法上网的原因
  • ubuntu 22.04 使用yaml文件 修改静态ip
  • 论文阅读:AAAI 2024 ExpeL: LLM Agents Are Experiential Learners
  • openpnp - 不连接设备,只大概测试一下摄像头是否好使
  • Zabbix网络发现:自动化监控新利器
  • TestComplete 如何打造高效UI测试体系?
  • Vue开发的3D全景图效果
  • linux信号量和日志
  • 算法训练之字符串
  • 复杂水文环境下识别精度↑86%!陌讯多模态融合算法在水位监测中的优化实践
  • 四、redis入门之集群部署
  • 富士 Instax 12 和 Instax Mini 11 有什么区别?推荐购买哪一款?
  • 【JMeter】调试取样器的使用
  • 全场景音频工作流实践:Melody如何打造音源管理闭环
  • git | git bash变慢解决
  • 基于 Modbus TCP 的飞升 FSH-CF计量泵多段速控制优化研究
  • pdf文件转word免费使用几个工具
  • react+echarts实现个性化评分展示(类进度条)
  • Spark01-初识Spark
  • React+TypeScript代码注释规范指南
  • 前端开发(HTML,CSS,VUE,JS)从入门到精通!第八天(Vue框架及其安装)(完结篇) 重点 ! ! !
  • React SSR 水合问题
  • Spark在什么情况下CBO才会判断失误,如何避免
  • 零成本建站:将 Windows 电脑变身为个人网站服务器
  • ubuntu alias命令使用详解
  • AI赋能SEO关键词优化策略