【问题标题】:Text Overflow in Flutter code not workingFlutter 代码中的文本溢出不起作用
【发布时间】:2020-06-27 13:14:47
【问题描述】:

我正在尝试省略 Flutter 应用程序中的文本,但我无法设置它。

我将视图设计如下

Positioned(
            bottom: 20,
            left: 10,
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: <Widget>[
                Text(
                  snapshot.data.results[index].title,
                  overflow: TextOverflow.ellipsis,
                  textAlign: TextAlign.start,
                  style: TextStyle(
                    fontSize: 20.0,
                    fontWeight: FontWeight.w600,
                    color: Colors.white,
                  ),
                ),
                Text(
                  snapshot.data.results[index].release_date,
                  style: TextStyle(
                      fontSize: 18.0,
                      fontWeight: FontWeight.w400,
                      color: Colors.white,
                      letterSpacing: 1.2),
                ),
              ],
            ))

【问题讨论】:

  • 我有相同的小部件,但接受的答案不起作用。你是怎么做到的?
  • 如果灵活不起作用并设置文本溢出,请使用扩展小部件。如果你想每个字母都用多行。我建议
  • 我最终使用了带有 mainAxisAlignment.end 的 Column 而不是 Positioned。感谢回复

标签: flutter dart flutter-layout


【解决方案1】:

您应该使用FlexibleExpanded 小部件来包装您的文本,如下所示:

    Flexible(child:Text("Text goes here"),

欲了解更多信息,请尝试this链接

【讨论】:

    【解决方案2】:

    我最近遇到了类似的事情。如果您使用 DartDevTools 检查 Text Widget 的 renderObject 的约束,您很可能会发现 maxWidth 约束是无穷大的。因此,Text 小部件不知道它应该对您提供的文本进行换行(默认行为)或应用省略号(在您的情况下)。

    在我的情况下,解决方案是将 Text 小部件包装在 Expanded 中。

    【讨论】:

    • 您可以尝试将文本包装在一个固定的小宽度容器中,以测试如果文本小部件知道其最大宽度,省略号原则上是否有效。然而,这不是永久的解决方案。
    猜你喜欢
    • 2014-06-03
    • 2014-01-04
    • 1970-01-01
    • 2017-11-27
    • 2021-10-02
    • 2016-07-15
    • 1970-01-01
    • 2019-07-29
    相关资源
    最近更新 更多