You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复Flutter中TextOverflow.ellipsis出现的异常符号问题?

Flutter中Text设置TextOverflow.ellipsis后末尾显示异常符号的解决方法

当给Flutter的Text组件设置maxLines和TextOverflow.ellipsis后,文本溢出时末尾未显示正常省略号,而是出现异常符号(如方块乱码),相关代码示例如下:

Text(
  'Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title ',
  style: layout.theme.textTheme.styleSB16,
  maxLines: 3,
  overflow: TextOverflow.ellipsis,
)

常见解决方法:

  • 检查字体完整性
    当前使用的styleSB16对应的字体文件可能缺失省略号(Unicode编码U+2026)字符,导致系统用缺失字符占位符替代。需更换包含完整字符集的字体,或确保目标字体文件中包含该省略号字符。

  • 添加字体兜底方案
    修改文本样式,为字体添加系统默认字体作为兜底,确保在目标字体缺失字符时,系统能使用兜底字体渲染省略号:

    style: layout.theme.textTheme.styleSB16.copyWith(
      fontFamilyFallback: ['sans-serif'], // 可根据平台选择对应兜底字体,如iOS的PingFang SC
    ),
    
  • 手动实现省略号逻辑
    若上述方法无效,可通过TextPainter判断文本是否溢出,手动截取文本并拼接省略号:

    LayoutBuilder(
      builder: (context, constraints) {
        final originalText = 'Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title ';
        final textSpan = TextSpan(text: originalText, style: layout.theme.textTheme.styleSB16);
        final textPainter = TextPainter(
          text: textSpan,
          maxLines: 3,
          textDirection: TextDirection.ltr,
        )..layout(maxWidth: constraints.maxWidth);
    
        if (textPainter.didExceedMaxLines) {
          // 这里的截取长度可根据实际布局调整,避免截断到单词中间
          final truncatedText = originalText.substring(0, originalText.length - 8) + '...';
          return Text(
            truncatedText,
            style: layout.theme.textTheme.styleSB16,
            maxLines: 3,
          );
        } else {
          return Text(
            originalText,
            style: layout.theme.textTheme.styleSB16,
            maxLines: 3,
          );
        }
      },
    )
    
  • 升级Flutter版本
    部分旧版Flutter在特定字体与maxLines组合场景下存在渲染bug,升级到最新稳定版可修复此类问题。

内容的提问来源于stack exchange,提问作者voselo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 16:10:55