热门IT资讯网

Flutter的MainAxisAlignment用法

发表于:2024-11-27 作者:热门IT资讯网编辑
编辑最后更新 2024年11月27日,#Flutter的MainAxisAlignment用法Row, ColumnRow是横向排列Widget,类属于androi的Linerlayout横向布局,Column是纵向排列Widget,类属

#Flutter的MainAxisAlignment用法

Row, Column

Row是横向排列Widget,类属于androi的Linerlayout横向布局,
Column是纵向排列Widget,类属于androi的Linerlayout横向布局

 Row({     key     mainAxisAlignment     mainAxisSize     crossAxisAlignment     textDirection     verticalDirection     textBaseline     children})```

就针对MainAxisAlignment和CrossAxisAlignment我们来一个案例分析

MainAxisAlignment(主轴上控制子控件)

先创建一个Flutter工程,随便放两个Text,代码如下

  Row(    mainAxisAlignment: MainAxisAlignment.spaceAround,    children: [      new Text(          '红茶拿铁', textAlign: TextAlign.center,          style: new TextStyle(              color: Colors.blue)),      new Text(          '卡布奇诺', textAlign: TextAlign.center,          style: new TextStyle(              color: Colors.red)),    ],  ),

对应的效果为
效果不明显,不知道谁是谁,哪是哪,我们为每个widget加个背景,改造一下

  Row(        children: [          Container(              height: double.infinity,              color: Colors.black,              child:              new Text(                  '红茶拿铁', textAlign: TextAlign.center,                  style: new TextStyle(                      color: Colors.white))),          Container(              height: double.infinity,              color: Colors.red,              child:              new Text(                  '卡布奇诺', textAlign: TextAlign.center,                  style: new TextStyle(                      color: Colors.white))),        ],      ),

对应效果为

我们现在使用MainAxisAlignment试试

我们在row中加上mainAxisAlignment: MainAxisAlignment.spaceBetween(使中间的各个子控件间距相等)
效果如下,不理解,感觉看不出什么,我们再加两个控件看看效果,效果如,现在清晰了吧。其他几个类似,当然还有一个属性textDirection,他可以控制start的排列始末。

  • MainAxisAlignment.spaceBetween:使中间的各个子控件间距相等
  • MainAxisAlignment.start:子控件放在主轴开始位置(类似于android默认Linerlayout排列规则)
  • MainAxisAlignment.end:将子控件放在主轴的结束位置
  • MainAxisAlignment.center:将子控件放在主轴的中间位置
  • MainAxisAlignment.spaceEvenly:将主轴空白区域均分,使各个子控件间距相等
0