【问题标题】:Why TextAlign.left not work in widget Text?为什么 TextAlign.left 在小部件文本中不起作用?
【发布时间】:2020-07-08 02:44:56
【问题描述】:

安卓工作室 3

  return new Container(
        height: 64.0,
        child: new Row(children: [
          new Expanded(child: new Container(color: Colors.cyanAccent,
              child: new Column(children: [
            new Text("Today",
                style: new TextStyle(
                    fontSize: 19.0,
                    color: Colors.black),
                textAlign: TextAlign.left),
            new Text("Thuersday, 26 March")
          ]))),
          new Align(alignment: Alignment.centerRight, child: new Image(image: AssetImage('assets/images/ic_profile.png')))
        ]));

你可以看到对齐文本今天我使用textAlign: TextAlign.left。但它不起作用。

这里的结果:

【问题讨论】:

  • 你想让日期也出现在左边吗?
  • @JosteveAdekanbi 是的,日期也必须在左边

标签: android flutter


【解决方案1】:

您必须设置文本的 Column 父级的 crossAxisAlignment。 该列的宽度等于她最宽的孩子,默认情况下 crossAxisAlignment 设置为 CrossAxiAlignment.center。

 return Container(
        height: 64.0,
        child: Row(children: [
          Expanded(child: Container(color: Colors.cyanAccent,
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: [
            Text("Today",
                style: new TextStyle(
                    fontSize: 19.0,
                    color: Colors.black),
                textAlign: TextAlign.left),
            Text("Thuersday, 26 March")
          ]))),
          Align(alignment: Alignment.centerRight, child: new Image(image: AssetImage('assets/images/ic_profile.png')))
        ]));

小提示 -> 您可以避免为每个 Widget 键入关键字 new

【讨论】:

    【解决方案2】:

    仅当文本占用的空间大于文本本身时,文本对齐才会起作用。

    将您的文本包装在 Align 小部件中以解决您的问题。

    return Container(
          height: 64.0,
          child: Row(
            children: [
              Expanded(
                child: Container(
                  color: Colors.cyanAccent,
                  child: Column(
                    children: [
                      Align(
                        alignment: Alignment.centerLeft,
                        child: Text("Today",
                            style: TextStyle(fontSize: 19.0, color: Colors.black),
                            textAlign: TextAlign.left),
                      ),
                      Text("Thuersday, 26 March")
                    ],
                  ),
                ),
              ),
              Align(
                alignment: Alignment.centerRight,
                child: Image(
                  image: AssetImage('assets/images/ic_profile.png'),
                ),
              ),
            ],
          ),
        );
    

    更多信息请参考this答案。

    【讨论】:

    • 文本占用空间大于文本是什么意思?我对这句话感到困惑。
    • @VirenVVarasadiya 请参阅我在答案中链接的上一个问题以获得进一步的解释。
    • 我检查了他们,但没有任何想法。在那个答案中,我发现同一句话不过如此。
    猜你喜欢
    • 2012-11-25
    • 2020-07-10
    • 1970-01-01
    • 2021-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-14
    • 1970-01-01
    相关资源
    最近更新 更多