防止长单字串去换行flutter

Prevent long single word string from going to new line flutter

我从用户那里得到了一个很长的字符串。但是,该字符串不使用右侧的 space。有没有什么方法可以让字符串在到达其 space 末尾时被连字符,然后才转到下一行?

这是我的代码:

Widget getIconWithDesc (IconData iconData, Color iconColor) {
return Flexible(
  child: Row(
    children: [
      Flexible(flex: 2, child: Icon(iconData, size: 60.0, color: iconColor)),
      const Flexible(flex: 1, child: SizedBox(width: 10.0,)),
      Flexible(flex:1, child: Text(widget.desc)),
    ],
  ),
);}

我添加了 Flexible 小部件,因为否则文本会溢出屏幕。但是,尽管这可以防止溢出,但 String 不会占用右侧的 space。我试图弄乱 flex 值,但没有成功。

尝试使用 Fitted Box 而不是 Flexible。这可能会使您的文本变小。

Widget getIconWithDesc (IconData iconData, Color iconColor) {
return Row(
    children: [
     FittedBox(flex: 2, child: Icon(iconData, size: 60.0, color: iconColor)),
      const Flexible(flex: 1, child: SizedBox(width: 10.0,)),
      Flexible(flex:1, child: Text(widget.desc)),
    ],
  );}

试试这个

Flexible(
  child: new Container(
    child: new Text(
      widget.desc,
      overflow: TextOverflow.ellipsis,
    ),
  ),
),

这将仅显示那些在指定容器区域中容易看到的文本,并在文本末尾放置 ...

像这样:/data/user/0/com ...

您可以在文本小部件中尝试 'maxLines':

Text(
        "Games",
        **maxLines: 1**,
        textAlign: TextAlign.left,
        style: CF.getBoldStyle(color: Colorito.white, fontSize: 12),
      ),

通过 flutter 文档: 文本跨越的可选最大行数,必要时换行。如果文本超过给定的行数,将根据[overflow]截断。

如果这是 1,文本将不会换行。否则,文本将被包裹在方框的边缘。

如果这是 null,但有一个环境 [DefaultTextStyle] 为其 [DefaultTextStyle.maxLines] 指定了一个明确的数字,那么 [DefaultTextStyle] 值将优先。您可以直接使用 [RichText] 小部件来完全覆盖 [DefaultTextStyle]。

return Row(
    children: [
      Icon(iconData, size: 60.0, color: iconColor),
      const SizedBox(width: 10.0,),
      Expanded( child: Text(widget.desc)),
    ],
);}