
Row 和 Column 都继承自弹性布局 Flex,其实就是确定了主轴方向的 Flex,其余的用法和 Flex 一致。
Row 水平布局
Row 可以在水平方向排列其 子widget。
Row({Key key,MainAxisAlignment mainAxisAlignment = MainAxisAlignment.start, //在主轴的对齐方式MainAxisSize mainAxisSize = MainAxisSize.max, //表示主轴应该占用多大的空间CrossAxisAlignment crossAxisAlignment = CrossAxisAlignment.center, //在垂直方向上,子widget的对齐方式,整体偏移TextDirection textDirection, //在水平方向上,子widget的排列方向VerticalDirection verticalDirection = VerticalDirection.down,TextBaseline textBaseline, //排列 子Widget 时使用哪个基线List<Widget> children = const <Widget>[],})
1. mainAxisAlignment 水平方向widget对齐方式
// 在水平方向上,子widget的对齐方式,是整体位置的偏移,靠左,居中,靠右等。只有当MainAxisSIze.max时才有意义// mainAxisAlignment: MainAxisAlignment.start, // 如果是TextDirection.ltr则是左对齐,rtl是右对齐
enum MainAxisAlignment {start, // 如果是TextDirection.ltr则是左对齐,rtl是右对齐end, // 如果是TextDirection.ltr则是右对齐,rtl是左对齐center, // 居中对齐spaceBetween,// 屏幕与子widget之间不留空隙,子widget之间距离相等spaceAround, // 屏幕与子widget之间留一定空隙,子widget之间距离相等spaceEvenly, // 屏幕与子widget之间,子widget之间距离相等}
RichText(text: TextSpan(children: <TextSpan>[TextSpan(text: "MainAxisAlignment.spaceEvenly\n",style: TextStyle(fontSize: 20,color: Colors.blue)),TextSpan(text: "屏幕与子widget之间,子widget之间距离相等",style: TextStyle(fontSize: 15,color: Colors.blueGrey)),]),),Container(color: Colors.amber,height: 150,child: Row(mainAxisAlignment: MainAxisAlignment.spaceEvenly,children: <Widget>[Text("Row1",style: TextStyle(fontSize: 20,color: Colors.blue),),Image.network("https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=4032780575,3204528048&fm=26&gp=0.jpg",width: 100,height: 100,),Text("Row2",style: TextStyle(fontSize: 20,color: Colors.blue),),Image.network("https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=1063547563,2289391090&fm=26&gp=0.jpg",width: 100,height: 100,),],),),






2. mainAxisSize 表示主轴应该占用多大的空间
3. crossAxisAlignment 在垂直方向上,子widget的对齐方式
这里记住 start、end、center 就可以



4. textDirection
textDirection: TextDirection.ltr,//从左到右textDirection: TextDirection.rtl,//从右到左
5. verticalDirection 垂直方向的排列顺序
verticalDirection: VerticalDirection.up, // 从下往上verticalDirection: VerticalDirection.down,// 从上往下

6. children 添加子视图组
Column
Column({Key key,MainAxisAlignment mainAxisAlignment = MainAxisAlignment.start,MainAxisSize mainAxisSize = MainAxisSize.max,CrossAxisAlignment crossAxisAlignment = CrossAxisAlignment.center,TextDirection textDirection,VerticalDirection verticalDirection = VerticalDirection.down,TextBaseline textBaseline,List<Widget> children = const <Widget>[],})
可以看到和row是一样的.只是方向是垂直的.


