我有一个Row
和一个Icon
和一个Text
。我希望Row
的内容居中,即Icon
+ Text
应该居中,Icon
在Text
的左边。我是通过在mainAxisAlignment: MainAxisAlignment.center
上设置Row
来实现的。
问题在于,Text
的内容有时太长而无法放在一行上,因此需要进行包装。我可以通过将其包装在Expanded
中来做到这一点,但这也有使Text
占据整个Row
的副作用,所以现在Icon
和{{ 1}}将变为左对齐,而不是居于Text
的中心,即使文本内容较短。
Row
我如何实现我想要的-即Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Icon(Icons.info_outline, color: Colors.grey),
Expanded(
child: Text(
'Short text' // or 'Some very long text that won\'t fit one one line here'
),
),
],
)
的内容居中,但如果文本太长而不能放在一行上,则仍允许Row
换行?
答案 0 :(得分:0)
如果您的Row
被Center
包裹。请尝试此操作。
Center(
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Icon(Icons.info_outline, color: Colors.grey),
Flexible(
child: Text('Hello World'),
),
],
),
)
将Expanded
更改为Flexible