flutter MainAxisAlignment /CrossAxisAlignment布局
MainAxisAlignment :顺布局
CrossAxisAlignment:交叉布局
这里详细解释:
MainAxisAlignment
- 当前是垂直控件(例如Column):默认起始位置在上,上向下垂直布局,verticalDirection改变起始位置及排列方向
- 当前是水平控件(例如Row):默认起始位置在中间,左到右水平布局,textDirection改变起始位置及排列方向
CrossAxisAlignment
- 当前是垂直控件(例如Column):默认起始位置在中间,上向下水平布局,textDirection改变起始位置及排列方向
- 当前是水平控件(例如Row):默认起始位置在中间,左到右垂直布局,verticalDirection改变起始位置及排列方向
水平布局状态使用:textDirection改变起始位置及排列方向
垂直布局状态使用:verticalDirection改变起始位置及排列方向
举例
MainAxisAlignment可取属性用法(前端的基本都知道这种效果,跟flex布局类似不做过多演示)
start,
//将子控件放在主轴的结束位置
end,
//将子控件放在主轴的中间位置
center,
//将主轴空白位置进行均分,排列子元素,手尾没有空隙
spaceBetween,
//将主轴空白区域均分,使中间各个子控件间距相等,首尾子控件间距为中间子控件间距的一半
spaceAround,
//将主轴空白区域均分,使各个子控件间距相等
spaceEvenly,
new Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
buildButtonColumn(Icons.share, 'SHARE'),
buildButtonColumn(Icons.call, 'CALL'),
buildButtonColumn(Icons.near_me, 'ROUTE'),
],
),