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或
SizedBox与infinite一起使用
width。
Column( children: <Widget>[ SizedBox( width: double.infinity, child: Container( color: Colors.red, child: Text( "Should be left", textAlign: TextAlign.left, ), ), ), ],),
呈现以下内容:
在该示例中,就是TextAlign将文本放在左侧。



