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

Flutter:如何修改字符串列表中特定文本的字号?

修改字符串列表中特定文本的样式

针对你要修改Fatiha列表最后一行里١۝۷ع文本样式的需求,这里提供几种实用的实现方式(以Flutter/Dart环境为例):

方法1:用RichText实现UI端的样式区分

如果是要在界面上给目标文本设置不同样式(比如改颜色、加粗),可以把最后一行文本拆分,用RichText组合不同样式的文本片段:

// 获取列表最后一行内容
String lastLine = Fatiha.last;
// 定位目标文本的位置
int targetPos = lastLine.indexOf('١۝۷ع');
// 拆分出普通文本和目标文本
String normalText = lastLine.substring(0, targetPos);
String styledText = '١۝۷ع';

// 构建富文本显示
RichText(
  text: TextSpan(
    children: [
      TextSpan(
        text: normalText,
        style: TextStyle(color: Colors.black, fontSize: 16),
      ),
      TextSpan(
        text: styledText,
        style: TextStyle(color: Colors.red, fontSize: 18, fontWeight: FontWeight.bold), // 自定义样式
      ),
    ],
  ),
)

方法2:给目标文本添加标记,后续统一解析

如果需要先标记目标文本,之后再批量处理样式,可以修改原列表的最后一行内容,用特殊符号包裹目标文本:

// 复制原常量列表,避免直接修改静态常量
List<String> updatedFatiha = List.from(Fatiha);
String originalLastLine = updatedFatiha.last;
// 替换目标文本为带标记的内容
updatedFatiha[updatedFatiha.length - 1] = originalLastLine.replaceAll('١۝۷ع', '**١۝۷ع**');

// 后续使用时,可以通过解析标记来应用样式,比如用Markdown渲染组件,或者自定义逻辑识别标记

方法3:直接存储富文本对象(替代纯字符串列表)

如果场景允许,可以把列表改成存储富文本对象,直接给目标文本设置样式:

List<TextSpan> fatihaRichList = [
  TextSpan(text: 'اَلْحَمْدُ لِلّٰهِ رَبِّ الْعٰلَمِیْنَۙ۝۱'),
  TextSpan(text: 'الرَّحْمٰنِ الرَّحِیْمِۙ۝۲'),
  TextSpan(text: 'مٰلِكِ یَوْمِ الدِّیْنِؕ۝۳'),
  TextSpan(text: 'اِیَّاكَ نَعْبُدُ وَ اِیَّاكَ نَسْتَعِیْنُؕ۝۴'),
  TextSpan(text: 'اِهْدِنَا الصِّرَاطَ الْمُسْتَقِیْمَۙ۝۵'),
  TextSpan(text: 'صِرَاطَ الَّذِیْنَ اَنْعَمْتَ عَلَیْهِمْ ۙ۬ۦ'),
  TextSpan(
    children: [
      TextSpan(text: 'غَیْرِ الْمَغْضُوْبِ عَلَیْهِمْ وَ لَا الضَّآلِّیْنَ۠'),
      TextSpan(
        text: '١۝۷ع',
        style: TextStyle(color: Colors.blue, fontStyle: FontStyle.italic),
      ),
    ],
  ),
];

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 04:45:32