flutter-text以字符的方式截断(代码片段)

坚果的博客 坚果的博客     2023-01-17     371

关键词:

本文主要介绍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;
  

查找长于x个字符的行并截断显示(代码片段)

我想在HTML文件上运行grep以查找长于x个字符的行,并使用grep截断显示。我知道的在html文件中找出长于100个字符的行。find.-name'*.html'-print|xargsgrep-on'.100'查找与title匹配的行,并将显示限制为40个字符find.-name'*.html'-print|xargsgrep-onE'.0... 查看详情

ddctf(代码片段)

...上传。寻找方法,找到需要更改代码的那一行,然后对照字符寻找数字,例如我们想把php+添加进去,+对应的字符为00那就找到第三个数字改为00,当时在旁听XX科技大学研究生课的时候,这个东西有一个统一的名称叫标志位,用... 查看详情

csharp以不同方式使用字符串连接的示例。(代码片段)

查看详情

csharp以不同方式使用字符串连接的示例。(代码片段)

查看详情

php将帖子摘录截断为固定数量的字符(代码片段)

查看详情

php将帖子摘录截断为固定数量的字符(代码片段)

查看详情

php将帖子摘录截断为固定数量的字符(代码片段)

查看详情

sed如果在添加文件时以“v”开头,则它会截断第一个字符(代码片段)

我陷入了我的生产代码之一,试图在文件的开头附加一些内容,如果我要附加的内容以“v”开头,则会被截断。复制步骤:$cattext.txtKubernetesdocument$var1=version1$sed-e"s/^/\$var1/"text.txt输出:ersion1Kubernetesdocument所需的输出:version1Kubern... 查看详情

避免unicode字符被截断的方法(代码片段)

NSString*str=@"????????";NSRangerange=NSMakeRange(2,str.length-2);NSString*subStr=[strsubstringWithRange:range];这里的str.length=8,因为字符串是unicode格式,一个字符是4个字节组合表示的。-(NSString*)utf8ToUnicode:(NSString*)stri 查看详情

javascript截断字符串(代码片段)

查看详情

javascript截断字符串(代码片段)

查看详情

css字符串截断(代码片段)

查看详情

php截断字符串(代码片段)

查看详情

javascript截断字符串(代码片段)

查看详情

javascript[trunacator]用于截断字符串#vanilla#script的脚本(代码片段)

查看详情

resttemplate将字符串以文件的方式上传(代码片段)

背景在java后台将内容拼接为字符串,然后使用RestTemplate将字符串以文件的方式上传到指定接口思路使用RestTemplate时,将字符串封装为字节流,然后上传代码/***将字符串以文件的方式上传**@paramurl上传的接口url*@paramcontent上传的字... 查看详情

使用字符串的方式(代码片段)

1.修改字符串的大小写    title()以首字母大写的方式显示每个单词,即将每个单词的首字母都改为大写。    upper()以每个字母均大写的方式显示    lower()以每个字母均小写的方式显示user... 查看详情

php截断一个字符串(代码片段)

查看详情