日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

flutter-Text 以字符的方式截断

發布時間:2025/3/19 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 flutter-Text 以字符的方式截断 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文主要介紹Text 以字符的方式截斷

Text 以字符的方式截斷

https://github.com/flutter/flutter/issues/52869

在flutter中,Text控件默認的溢出顯示模式是TextOverflow.fade ,就是淡出

在iOS或者Android平臺默認的文件截斷模式一般是…省略,flutter里面對應的截斷模式為TextOverflow.ellipsis ,不過這里的截斷是英文按照單詞來的,這樣的模式會導致如果最后一個單詞很長時,截斷顯示會整理省略而不是最后超出的字符省略,導致模塊可能有一大塊空白。

Dart系統定義的截斷模式

/// How overflowing text should be handled. /// /// A [TextOverflow] can be passed to [Text] and [RichText] via their /// [Text.overflow] and [RichText.overflow] properties respectively. enum TextOverflow {/// Clip the overflowing text to fix its container.clip,/// Fade the overflowing text to transparent.fade,/// Use an ellipsis to indicate that the text has overflowed.ellipsis,/// Render overflowing text outside of its container.visible, }

如何解決英文單詞被整體截斷呢?

將單詞的每個字符切割開,插入寬度0的占位字符,打破系統默認的機制,這樣就可以以字符為單位省略了

需要注意。這種方式相當于修改了文本的內容,一般文本最大一行顯示可以用,如果文本支持2行以及以上的顯示的話,將會導致換行不再按照字符進行而按照單詞進行

下面是Example實現

extension TextOverflowUtil on String {/// 將flutter系統默認的單詞截斷模式轉換成字符截斷模式/// 通過向文本中插入寬度為0的空格實現static String toCharacterBreakStr(String word) {if (word == null || word.isEmpty) {return word;}String breakWord = '';word.runes.forEach((element) {breakWord += String.fromCharCode(element);breakWord += '\u200B';});return breakWord;} }

總結

以上是生活随笔為你收集整理的flutter-Text 以字符的方式截断的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。