持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第14天,点击查看活动详情
这里简单记录一下布局组件,详细的一些属性感觉代码提示有的,不用过于死记硬背
- Column 组件
- Row 组件
- Wrap组件(换行)
- Stack组件(Stack 重叠)
- Positioned 组件(作为stack的子组件,与stack紧密使用)
Column 组件
竖列(Column)可将多个子组件沿着垂直的“纵坐标轴”方向排列。由于它需要同时排列多个子组件,所以嵌套子组件的参数不是child,而是复数形式children。代码如下:
tips: Column作为页面布局,一般都是需要展示到屏幕上的。如果是那种滚动列表有好多数据加载渲染的,应该考虑使用ListView组件。
- 1)mainAxisSize属性 主轴尺寸是指Column组件在主轴方向(垂直方向)所占的空间
- 2)mainAxisAlignment属性 主轴对齐方式,需要传入的类型为MainAxisAlignment类,默认为MainAxisAlignment. start,即沿主轴起始位置摆放。【MainAxisAlignment.end,MainAxisAlignment.center】
- 3)crossAxisAlignment属性 交叉轴对齐方式,默认为居中对齐,即CrossAxisAlignment.center。
Row 组件
当需要将多个组件沿水平方向并列显示时,就可以使用负责横排的Row组件。
Wrap组件
虽然Column组件和Row组件都非常适合将子组件沿着某一轴依次排列,但是当遇到子组件较多的情况时,它们很容易因为空间不足而造成溢出。此时或许可以考虑使用Wrap组件。Wrap组件的默认行为和Row组件非常相似,将子组件从左到右依次排列,但当空间不足时,Row组件会溢出,而Wrap组件则会自动换行。代码如下:
Stack组件(Stack 一叠)
叠放。例如,在图片上加水印、在用户头像加上一对猫耳朵、把54张扑克牌的图片叠在一起变成一副牌等。
Positioned 组件
- top、bottom、left、right属性【用于控制Positioned的子组件在Stack容器内的位置】
- width和height属性
若需要精确控制若干个子组件在Stack(叠)中的位置,则开发者可选用Positioned组件.上面介绍的Stack在布局时会将children参数中的子组件分为二大类,一类是“有位置”的子组件,即Positioned组件,另一类是“无位置”的其他组件。由此可见Positioned和Stack两个组件紧密相连。使用时,Positioned组件一般直接作为Stack组件的子级,不再在二者之间插入其他组件,而真正需要渲染的子组件应通过Positioned的child属性嵌入,作为Positioned的子级。
读书笔记,《Flutter组件详解与实践》作者是王浩然