flutter - 如何在 flutter 中仅使一行2个元素中的一个元素居中

在我的布局中,我连续有两个小部件,一个文本和一个图标。

如下图,假设*代表图标,用“-”表示行:

----------------------------
           Text          *  
----------------------------

如何让我的文本在整行居中,而图标在右端?

最佳答案

您需要注意的主要一点是,如果您不想使用 Stack,您应该在左右提供相同的宽度消耗小部件。

我会使用 ExpandedPadding

Row(
  children: <Widget>[
    Expanded(
      child: Padding(
        padding: const EdgeInsets.only(left: 32.0),
        child: Text(
          "Text",
          textAlign: TextAlign.center,
        ),
      ),
    ),
    Icon(Icons.add, size: 32.0,)
  ],
)

或使用 RowmainAxisAlignment 和一个 SizedBox

Row(
  mainAxisAlignment: MainAxisAlignment.spaceBetween,
  children: <Widget>[
    const SizedBox(width: 32.0),
    Text("Text"),
    Icon(Icons.add, size: 32.0)
  ],
)

或在左侧使用 ExpandedSizedBox 而不是填充:)。左侧的填充或额外容器是为了让 textAlign 真正将行中的文本居中,同时考虑到图标占用的空间。

https://stackoverflow.com/questions/51587003/

相关文章:

java - 使用 Platform Channels 在 Flutter 中调用原生库

firebase - 如何使用 Firebase 身份验证在 Flutter 中注销用户

flutter - Flutter中有类似AlarmManager的东西吗?

flutter - 在 flutter 中使用 TabBarView 获取 'Horizontal

android - Flutter Multiline 文本

android - Flutter 未检测到 Android SDK

dart - 如何从 Flutter 检查设备操作系统版本?

dart - 如何自动缩小文本小部件中的字体以适应最大行数?

dart - Material Flutter 应用源码

flutter - 在 Flutter 中选择下拉项时出错