flutter 如何更换弦线,然后改变弦线颜色

9o685dep  于 2023-10-22  发布在  Flutter
关注(0)|答案(1)|浏览(103)

我有一个问题:如何确保在选择答案时,段落中的答案将被替换,然后文本将改变文本的颜色。问题是响应数据。从API来说,有时候会有很多--或者有时候会有一点,所以不知道怎么解决。这是我的问题和我的代码,谢谢。enter image description hereenter image description here

String targetCharacter = "_";
 widget.isChecked == true ||
                          widget.answer?.id == widget.choiceAnswer?.id
                      ? Text(widget.question?.content
                              ?.replaceFirst(
                                targetCharacter,
                                widget.question?.answers?[widget.index ?? 0]
                                        .text ??
                                    ''.trim(),
                              )
                              .replaceAll(
                                targetCharacter,
                                ''.trim(),
                              ) ??
                          '')
                      : ConvertLatex(
                          content: widget.question?.content,
                          maxLine: isShow != true ? 5 : 100,
                        ),

如果有人有办法解决这个问题,请帮助我。非常感谢

dohp0rv5

dohp0rv51#

试着更换这部分

Text(widget.question?.content
                          ?.replaceFirst(
                            targetCharacter,
                            widget.question?.answers?[widget.index ?? 0]
                                    .text ??
                                ''.trim(),
                          )
                          .replaceAll(
                            targetCharacter,
                            ''.trim(),
                          ) ??
                      '')

RichText(
        text: TextSpan(
            children: (widget.question?.content ?? '')
                .split(RegExp(r'(?<=[_])(?=[^_])|(?<=[^_])(?=[_])'))
                .map((e) => RegExp(r'_').hasMatch(e)
                    ? TextSpan(
                        text: (widget.question?.answers?[widget.index ?? 0].text ?? '').trim(),
                        style: const TextStyle(color: Colors.red),
                      )
                    : TextSpan(
                        text: e,
                      ))
                .toList())),

相关问题