📜  在Flutter对齐小部件(1)

📅  最后修改于: 2023-12-03 15:37:35.431000             🧑  作者: Mango

在 Flutter 对齐小部件

Flutter 是 Google 推出的一款跨平台移动应用程序开发框架,它提供了丰富的小部件系统,让开发者能够轻松地构建出美观且高效的应用。

在 Flutter 中,小部件的排列往往需要进行对齐操作,以便使 UI 更加美观。本文将为大家介绍如何在 Flutter 中通过对齐小部件来实现更加美观的 UI。

水平对齐
MainAxisAlignment

水平对齐可以通过 MainAxisAlignment 枚举类型中的不同属性进行设置。

| 编号 | 值 | 描述 | | ---- | --------------- | ------------------------------- | | 1 | start | 主轴起点对齐 | | 2 | end | 主轴终点对齐 | | 3 | center | 主轴居中对齐 | | 4 | spaceBetween | 主轴两端对齐,空白处均匀分布 | | 5 | spaceAround | 主轴两端对齐,空白处平均分布 | | 6 | spaceEvenly | 空白处平均分布(包括首尾) |

例如想要在主轴上将多个小部件居中,可以使用以下代码:

Row(
    mainAxisAlignment: MainAxisAlignment.center,
    children: <Widget>[
        Text("Hello"),
        Text("Flutter"),
        Text("World")
    ]
)
CrossAxisAlignment

垂直对齐可以通过 CrossAxisAlignment 枚举类型中的不同属性进行设置。

| 编号 | 值 | 描述 | | ---- | --------------- | --------------------------------------------- | | 1 | start | 交叉轴起点对齐 | | 2 | end | 交叉轴终点对齐 | | 3 | center | 交叉轴居中对齐 | | 4 | baseline | 基线对齐 | | 5 | stretch | 拉伸对齐(注:需要设置 SizedBox 的 height 属性)|

例如想要在交叉轴上将多个小部件居中,可以使用以下代码:

Row(
    crossAxisAlignment: CrossAxisAlignment.center,
    children: <Widget>[
        Text("Hello"),
        Text("Flutter"),
        Text("World")
    ]
)
垂直对齐
MainAxisAlignment

垂直对齐可以通过 MainAxisAlignment 枚举类型中的不同属性进行设置。

| 编号 | 值 | 描述 | | ---- | --------------- | ------------------------------- | | 1 | start | 主轴起点对齐 | | 2 | end | 主轴终点对齐 | | 3 | center | 主轴居中对齐 | | 4 | spaceBetween | 主轴两端对齐,空白处均匀分布 | | 5 | spaceAround | 主轴两端对齐,空白处平均分布 | | 6 | spaceEvenly | 空白处平均分布(包括首尾) |

例如想要在主轴上将多个小部件居中,可以使用以下代码:

Column(
    mainAxisAlignment: MainAxisAlignment.center,
    children: <Widget>[
        Text("Hello"),
        Text("Flutter"),
        Text("World")
    ]
)
CrossAxisAlignment

水平对齐可以通过 CrossAxisAlignment 枚举类型中的不同属性进行设置。

| 编号 | 值 | 描述 | | ---- | --------------- | --------------------------------------------- | | 1 | start | 交叉轴起点对齐 | | 2 | end | 交叉轴终点对齐 | | 3 | center | 交叉轴居中对齐 | | 4 | baseline | 基线对齐 | | 5 | stretch | 拉伸对齐(注:需要设置 SizedBox 的 width 属性)|

例如想要在交叉轴上将多个小部件居中,可以使用以下代码:

Column(
    crossAxisAlignment: CrossAxisAlignment.center,
    children: <Widget>[
        Text("Hello"),
        Text("Flutter"),
        Text("World")
    ]
)
合并对齐

同时想要在水平和垂直两个方向上进行对齐,可以使用 Row 和 Column 嵌套实现。

例如想要将多个小部件居中,可以使用以下代码:

Container(
  width: 100,
  height: 100,
  color: Colors.blue,
  child: Row(
    mainAxisAlignment: MainAxisAlignment.center,
    crossAxisAlignment: CrossAxisAlignment.center,
    children: <Widget>[
        Text("Hello"),
        Text("Flutter"),
    ],
  ),
);

代码输出:

以上就是在 Flutter 中对齐小部件的介绍。希望本文能够对开发者有所帮助。