美文网首页
Flutter基础控件之Row&Column

Flutter基础控件之Row&Column

作者: 青年别来无恙 | 来源:发表于2020-02-01 22:47 被阅读0次

    简单介绍

    flutter中Row用于水平排列,Column用于竖直排列。

    使用

    class LayoutDemo extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            IconBadge(Icons.person, size: 100,),
            IconBadge(Icons.edit),
            SettingText('这是一个行模型',),
          ],
        );
      }
    }
    

    row和column的用法基本一致。

    主轴mainAxis

    在row中主轴方向是从左到右水平方向的,column中主轴方向是从上到下竖直的。

    enum MainAxisAlignment {
      /// Place the children as close to the start of the main axis as possible.
      ///
      /// If this value is used in a horizontal direction, a [TextDirection] must be
      /// available to determine if the start is the left or the right.
      ///
      /// If this value is used in a vertical direction, a [VerticalDirection] must be
      /// available to determine if the start is the top or the bottom.
      start,
    
      /// Place the children as close to the end of the main axis as possible.
      ///
      /// If this value is used in a horizontal direction, a [TextDirection] must be
      /// available to determine if the end is the left or the right.
      ///
      /// If this value is used in a vertical direction, a [VerticalDirection] must be
      /// available to determine if the end is the top or the bottom.
      end,
    
      /// Place the children as close to the middle of the main axis as possible.
      center,
    
      /// Place the free space evenly between the children.
      spaceBetween,
    
      /// Place the free space evenly between the children as well as half of that
      /// space before and after the first and last child.
      spaceAround,
    
      /// Place the free space evenly between the children as well as before and
      /// after the first and last child.
      spaceEvenly,
    }
    
    1. start 开始位置

    2. end结束位置

    3. center 中间位置

    4. spaceBetween 空间分配到子控件的之间


      spaceBetween
    5. spaceAround 空间分配到子控件的周围


      spaceAround
    6. spaceEvenly 空间平均分配到子控件之间


      spaceEvenly

    crossAxis交叉轴

    交叉轴是与主轴垂直的轴。

    enum CrossAxisAlignment {
      /// Place the children with their start edge aligned with the start side of
      /// the cross axis.
      ///
      /// For example, in a column (a flex with a vertical axis) whose
      /// [TextDirection] is [TextDirection.ltr], this aligns the left edge of the
      /// children along the left edge of the column.
      ///
      /// If this value is used in a horizontal direction, a [TextDirection] must be
      /// available to determine if the start is the left or the right.
      ///
      /// If this value is used in a vertical direction, a [VerticalDirection] must be
      /// available to determine if the start is the top or the bottom.
      start,
    
      /// Place the children as close to the end of the cross axis as possible.
      ///
      /// For example, in a column (a flex with a vertical axis) whose
      /// [TextDirection] is [TextDirection.ltr], this aligns the right edge of the
      /// children along the right edge of the column.
      ///
      /// If this value is used in a horizontal direction, a [TextDirection] must be
      /// available to determine if the end is the left or the right.
      ///
      /// If this value is used in a vertical direction, a [VerticalDirection] must be
      /// available to determine if the end is the top or the bottom.
      end,
    
      /// Place the children so that their centers align with the middle of the
      /// cross axis.
      ///
      /// This is the default cross-axis alignment.
      center,
    
      /// Require the children to fill the cross axis.
      ///
      /// This causes the constraints passed to the children to be tight in the
      /// cross axis.
      stretch,
    
      /// Place the children along the cross axis such that their baselines match.
      ///
      /// If the main axis is vertical, then this value is treated like [start]
      /// (since baselines are always horizontal).
      baseline,
    }
    

    和主轴参数类似,用来改变主轴垂直方向的位置。

    相关文章

      网友评论

          本文标题:Flutter基础控件之Row&Column

          本文链接:https://www.haomeiwen.com/subject/gycfxhtx.html