面试题答案
一键面试实现思路
- 顶部Row布局:创建一个Row,设置固定高度。通过
Expanded
组件包裹每个按钮,使它们在Row中宽度相等。 - 中部Column布局:创建一个Column,在其中添加图片,设置图片宽度为Column的宽度(即充满),高度自适应。
- 底部Row布局:使用
Positioned
或Scaffold
的bottomNavigationBar
来确保底部Row始终在页面底部。在Row中,左边用Text
,右边用Icon
。
各部分利用主轴与交叉轴属性实现布局
- 顶部Row:
- 主轴:主轴方向为水平方向,
Row
默认主轴方向为水平。通过Expanded
组件均匀分配主轴空间给按钮。 - 交叉轴:交叉轴方向为垂直方向,设置固定高度,通过
height
属性设置,使按钮在垂直方向高度一致。
- 主轴:主轴方向为水平方向,
- 中部Column:
- 主轴:主轴方向为垂直方向,
Column
默认主轴方向为垂直。图片沿主轴垂直排列。 - 交叉轴:交叉轴方向为水平方向,设置图片宽度为充满Column,即设置图片的
width
为double.infinity
。
- 主轴:主轴方向为垂直方向,
- 底部Row:
- 主轴:主轴方向为水平方向,
Row
默认主轴方向为水平。左边Text
和右边Icon
沿主轴排列。 - 交叉轴:交叉轴方向为垂直方向,通过
Align
或Positioned
等组件将Row定位在页面底部。若使用Scaffold
的bottomNavigationBar
,则自动将其定位在底部。
- 主轴:主轴方向为水平方向,