【Flutter基础】1.2-拆分布局

388 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第14天,点击查看活动详情

这里简单记录一下布局组件,详细的一些属性感觉代码提示有的,不用过于死记硬背

  • Column 组件
  • Row 组件
  • Wrap组件(换行)
  • Stack组件(Stack 重叠)
  • Positioned 组件(作为stack的子组件,与stack紧密使用)

Column 组件

竖列(Column)可将多个子组件沿着垂直的“纵坐标轴”方向排列。由于它需要同时排列多个子组件,所以嵌套子组件的参数不是child,而是复数形式children。代码如下:

image.png

tips: Column作为页面布局,一般都是需要展示到屏幕上的。如果是那种滚动列表有好多数据加载渲染的,应该考虑使用ListView组件。

  • 1)mainAxisSize属性 主轴尺寸是指Column组件在主轴方向(垂直方向)所占的空间
  • 2)mainAxisAlignment属性 主轴对齐方式,需要传入的类型为MainAxisAlignment类,默认为MainAxisAlignment. start,即沿主轴起始位置摆放。【MainAxisAlignment.end,MainAxisAlignment.center】
  • 3)crossAxisAlignment属性 交叉轴对齐方式,默认为居中对齐,即CrossAxisAlignment.center。

Row 组件

当需要将多个组件沿水平方向并列显示时,就可以使用负责横排的Row组件。

image.png

image.png

Wrap组件

虽然Column组件和Row组件都非常适合将子组件沿着某一轴依次排列,但是当遇到子组件较多的情况时,它们很容易因为空间不足而造成溢出。此时或许可以考虑使用Wrap组件。Wrap组件的默认行为和Row组件非常相似,将子组件从左到右依次排列,但当空间不足时,Row组件会溢出,而Wrap组件则会自动换行。代码如下:

image.png

Stack组件(Stack 一叠)

叠放。例如,在图片上加水印、在用户头像加上一对猫耳朵、把54张扑克牌的图片叠在一起变成一副牌等。

image.png

Positioned 组件

  1. top、bottom、left、right属性【用于控制Positioned的子组件在Stack容器内的位置】
  2. width和height属性

若需要精确控制若干个子组件在Stack(叠)中的位置,则开发者可选用Positioned组件.上面介绍的Stack在布局时会将children参数中的子组件分为二大类,一类是“有位置”的子组件,即Positioned组件,另一类是“无位置”的其他组件。由此可见Positioned和Stack两个组件紧密相连。使用时,Positioned组件一般直接作为Stack组件的子级,不再在二者之间插入其他组件,而真正需要渲染的子组件应通过Positioned的child属性嵌入,作为Positioned的子级

image.png

读书笔记,《Flutter组件详解与实践》作者是王浩然