Flutter 中如何使用 Row 和 Column?

推荐答案

在 Flutter 中,RowColumn 是用于布局的基本组件,分别用于水平排列和垂直排列子组件。

使用 Row

-- -------------------- ---- -------
----
  --------- ---------
    ----------
      ------ -----------
      ------ ----
      ------- ----
    --
    ----------
      ------ -------------
      ------ ----
      ------- ----
    --
    ----------
      ------ ------------
      ------ ----
      ------- ----
    --
  --
-

使用 Column

-- -------------------- ---- -------
-------
  --------- ---------
    ----------
      ------ -----------
      ------ ----
      ------- ----
    --
    ----------
      ------ -------------
      ------ ----
      ------- ----
    --
    ----------
      ------ ------------
      ------ ----
      ------- ----
    --
  --
-

本题详细解读

RowColumn 的基本概念

  • Row: 用于在水平方向上排列子组件。子组件会从左到右依次排列。
  • Column: 用于在垂直方向上排列子组件。子组件会从上到下依次排列。

主要属性

  • children: 一个 Widget 列表,表示要排列的子组件。
  • mainAxisAlignment: 控制子组件在主轴(Row 中是水平轴,Column 中是垂直轴)上的对齐方式。常见的值有 MainAxisAlignment.startMainAxisAlignment.centerMainAxisAlignment.endMainAxisAlignment.spaceBetweenMainAxisAlignment.spaceAroundMainAxisAlignment.spaceEvenly
  • crossAxisAlignment: 控制子组件在交叉轴(Row 中是垂直轴,Column 中是水平轴)上的对齐方式。常见的值有 CrossAxisAlignment.startCrossAxisAlignment.centerCrossAxisAlignment.endCrossAxisAlignment.stretch
  • mainAxisSize: 控制 RowColumn 在主轴上的大小。常见的值有 MainAxisSize.maxMainAxisSize.min

示例代码解析

  • Row 示例: 三个不同颜色的 Container 在水平方向上排列。
  • Column 示例: 三个不同颜色的 Container 在垂直方向上排列。

注意事项

  • 如果子组件的总宽度或高度超过了 RowColumn 的可用空间,可能会导致溢出错误。可以通过使用 ExpandedFlexible 组件来调整子组件的大小,或者使用 SingleChildScrollView 来支持滚动。
  • RowColumn 的默认行为是尽可能占据所有可用空间,除非显式设置了 mainAxisSizeMainAxisSize.min
纠错
反馈