在我的布局中,我有两个连续的小部件,一个文本和一个图标.
如下图所示,假设*指的是图标,用"-"表示该行:
----------------------------
Text *
----------------------------
如何使文本在整行居中,图标在右端?
在我的布局中,我有两个连续的小部件,一个文本和一个图标.
如下图所示,假设*指的是图标,用"-"表示该行:
----------------------------
Text *
----------------------------
如何使文本在整行居中,图标在右端?
你需要注意的主要一点是,如果你不想使用Stack
,你应该在左边和右边提供相同的宽度消耗小部件.
我会用Expanded
或Padding
做这件事
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,)
],
)
或者用Row
的mainAxisAlignment
和SizedBox
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
const SizedBox(width: 32.0),
Text("Text"),
Icon(Icons.add, size: 32.0)
],
)
或者左边有Expanded
和SizedBox
,而不是填充:).左边的填充或额外的容器是为了使textAlign在考虑到图标占用的空间的情况下真正将行中的文本居中.