在中心对齐列,但在 Flutter 中将文本对齐到屏幕左侧

Posted

技术标签:

【中文标题】在中心对齐列,但在 Flutter 中将文本对齐到屏幕左侧【英文标题】:Align Column in Center but align Text to left of screen in Flutter 【发布时间】:2020-05-14 23:53:27 【问题描述】:

很抱歉问了这么一个微不足道的问题,但我无能为力。我刚刚花了 3 个小时试图让一列在中心对齐,如果没有 Container,我无法做到这一点,现在我无法将文本放在屏幕左侧。

为了更好地解释它,我在我的应用程序中心有一个我想要的列。顶部有文本,它向左移动,但列中的所有其他小部件都居中。

对于我尝试过 mainAxisAlign 和 crossAxisAlign 的列。前者绝对什么都不做,而后者则朝着错误的方向前进(垂直居中而不是水平居中,这不是我想要的)。经过多次其他尝试后,我求助于使用容器,但现在我无法将文本移到左侧。我使用textAlign: TextAlign.Left 并尝试通过将容器放入SizedBox.expand() 来扩展容器以适应屏幕,但没有任何反应。

谁能解释一下如何将列居中,然后将文本向左对齐?

这是我迄今为止尝试过的:

return SizedBox.expand(
                child: Container(
                alignment: Alignment.center,
                child: Column(
                    children:
                    [
                        Text(
                            text,
                            style: TextStyle(
                                fontSize: 25.0,
                            ),
                            textAlign: TextAlign.left,
                        ),
                        CircularProgressIndicator(
                            backgroundColor: Colors.white10,
                            strokeWidth: 5,
                        )
                    ],
                    crossAxisAlignment: CrossAxisAlignment.center,
                ),
                margin: EdgeInsets.all(10.0),
            )
        );

Just in case I'm explaining this terribly, here is a basic picture 谢谢!

【问题讨论】:

您能否发布您迄今为止尝试过的代码以及预期设计的草图? @ManishRaj 现在完成了 :) 【参考方案1】:

使用Align() 小部件

Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget>[
          Align(
            alignment: Alignment.centerLeft,
            child: 
          Text(
              'text',
            ),
          ),
        ],
      ),

【讨论】:

【参考方案2】:

您应该使用行和列的组合。行水平扩展,列可以垂直扩展。

SizedBox.expand(
              child: Padding(
                  padding: EdgeInsets.all(12.0),
                  child: Column(children: <Widget>[
                    Row(children: <Widget>[Text('Hello')]),
                    Expanded(
                        child: Column(
                            children: <Widget>[CircularProgressIndicator()],
                            mainAxisAlignment: MainAxisAlignment.center))
                  ])))

【讨论】:

【参考方案3】:

你可以这样做

 Container(
                      child: Column(
                        crossAxisAlignment: CrossAxisAlignment.start,
                        mainAxisAlignment: MainAxisAlignment.center,
                        children: [

                         
                        ],
                      ),
                    )

【讨论】:

以上是关于在中心对齐列,但在 Flutter 中将文本对齐到屏幕左侧的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 卡片列对齐和文本居中

Highcharts Legend 问题:我想让 Legend 100% 宽度和文本中心对齐它在 crome 中工作正常,但在 Firefox 中没有对齐中心

在 Flutter 中对齐多行 TextField 中的提示文本

在 UILabel 中将文本垂直对齐到顶部

在 UILabel 中将文本垂直对齐到顶部

在 UILabel 中将文本垂直对齐到顶部