DefaultTextStyle
与问题无关。删除它仅使用默认样式,该样式比您使用的默认样式大得多,因此隐藏了 问题。
textAlignText
当占用的空间大于实际内容时,将文本对齐。
问题是,在内Column,您Text仅占用最小的空间。它是那么Column,使用对齐其子crossAxisAlignment
,其默认为center
。
捕获此类行为的一种简单方法是将文本包装成这样:
Container(
color: Colors.red,
child: Text(...)
)
问题突然变得很明显:Text不要占用整个Column宽度。
您现在有一些解决方案。
您可以将自己包装Text
成Align
模仿textAlign
行为
Column(
children: <Widget>[
Align(
alignment: Alignment.centerLeft,
child: Container(
color: Colors.red,
child: Text(
"Should be left",
),
),
),
],
)
或者,您也可以强制Text填充Column宽度。
通过指定crossAxisAlignment: CrossAxisAlignment.stretchonColumn
或Sized@R_628_2419@与infinite
一起使用width
。
Column(
children: <Widget>[
Sized@R_628_2419@(
width: double.infinity,
child: Container(
color: Colors.red,
child: Text(
"Should be left",
textAlign: TextAlign.left,
),
),
),
],
),
呈现以下内容:
在该示例中,就是TextAlign将文本放在左侧。