【问题标题】:How can I wrap text to the new line properly?如何正确地将文本换行到新行?
【发布时间】:2020-12-24 09:37:35
【问题描述】:

当没有可用空间时,我想将文本换行到新行。但我有一个问题。

我写了以下代码:

 return SafeArea(
      child: Scaffold(
        body: Wrap(
          children: [
            Container(
              color: Colors.red,
              constraints: BoxConstraints(
                maxWidth: MediaQuery.of(context).size.width / 1.1
              ),
              padding: EdgeInsets.only(left: 8,right: 8),
              child: Text('HelllOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO everyyyyyyyyyyyyyyyyyyyyyyyyy'),
            ),
          ],
        ),
      ),
    );

以上代码返回如下图片:

如您所见,“everyyyy..”这个词,完全包裹到下一行。我想创建类似以下图像的内容:

请帮帮我,我对此一无所知。

【问题讨论】:

  • 删除every前面的空格,尝试使用maxLines代替Text,设置width代替Container
  • 谢谢。文本将是动态的,我无法为此定义规则。你说的其他事情没有用
  • 因此,如果文本是动态的,您如何期望它会被包裹起来有些棘手? Flutter 使用自己的算法进行包装。如果您不喜欢它,请使用您自己的,计算符号,宽度。在 stackoverflow hiw 中有一个答案来计算 Text 小部件的宽度。
  • 感谢您的回答。请检查接受的答案。成功了

标签: flutter flutter-layout


【解决方案1】:

为您的 Text 小部件尝试此代码:

Text('HelllOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO everyyyyyyyyyyyyyyyyyyyyyyyyy'.replaceAll(' ', '\u00A0')),

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多