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

如下图所示,假设*指的是图标,用"-"表示该行:

----------------------------
           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,)
  ],
)

或者用RowmainAxisAlignmentSizedBox

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

或者左边有ExpandedSizedBox,而不是填充:).左边的填充或额外的容器是为了使textAlign在考虑到图标占用的空间的情况下真正将行中的文本居中.

Flutter相关问答推荐

如何在Flutter的easy_translation包中链接嵌套的链接翻译?

Flutter 图标记移动

如何在不注销的情况下刷新Firebase身份验证用户

Flutter为什么不;没有ListView.iterable()构造函数?

如何在点击查看措辞下方添加句子?

如何修改来自合并 list 的 Android list 权限?

如何动态获取任何小部件的像素?

Riverpod中stateNotiferProvider和notifierProvider的区别

Flutter 3.10 - 'window' 已弃用,不应使用

我可以在列表图块下方添加其他小部件吗

如何在 flutter 中使用带有有效负载数据的重定向来执行 firebase 推送通知.?

在向 Google Route API 发送 HTTP Post 请求期间发生错误,

具有 BLOC 和存储库模式的 Flutter Workmanager

statefulWidget 无法进行所需更改的问题

从物理设备 Flutter 中移除 USB 后启动画面不可见?

Positioned 的宽度或 SizedBox 的宽度都不适用于堆栈小部件 - Flutter

有没有办法帮助我修复类型 null 不是 Map 类型的子类型?

在自动完成中 Select 值后保持键盘焦点

将容器扩展到安全区域 - Flutter

我们什么时候在flutter中初始化一个provider?