簡體   English   中英

防止長單字串去換行顫動

[英]Prevent long single word string from going to new line flutter

我從用戶那里得到了一個很長的字符串。 但是,字符串不使用右側的空間。 有沒有什么方法可以使字符串在到達其空間末尾時被連字符,然后才轉到下一行?

這是我的代碼:

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)),
    ],
  ),
);}

我添加了靈活小部件,因為否則文本會從屏幕溢出。 但是,盡管這防止了溢出,但 String 不會占用右側的空間。 我試圖弄亂 flex 值,但沒有運氣。

文本轉到新行

試試 Fitted Box,而不是靈活的。 這可能會使您的文本變小。

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),
      ),

通過顫振文檔:文本跨越的可選最大行數,必要時換行。 如果文本超過給定的行數,將根據[溢出]截斷。

如果為 1,文本將不換行。 否則,文本將在框的邊緣換行。

如果它為空,但有一個環境 [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)),
    ],
);}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM