Existe-t-il un moyen de changer la couleur d'un mot particulier dans une chaîne?
Text("some long string")
maintenant je veux donner de la couleur à seulement long Word.
quelqu'un peut-il me dire comment procéder par programmation?
par exemple:-
Je suis depuis longtemps une chaîne vraiment longue et longue dans une variable, une longue
maintenant ici je veux séparer la longue Parole. Je peux séparer une chaîne simple pour mettre en surbrillance un mot, mais je ne sais pas comment trouver et mettre en surbrillance chacun de ces mots.
Voici mon code.
class HighlightText extends StatelessWidget {
final String text;
final String highlight;
final TextStyle style;
final Color highlightColor;
const HighlightText({
Key key,
this.text,
this.highlight,
this.style,
this.highlightColor,
}) : super(key: key);
@override
Widget build(BuildContext context) {
String text = this.text ?? '';
if ((highlight?.isEmpty ?? true) || text.isEmpty) {
return Text(text, style: style);
}
List<TextSpan> spans = [];
int start = 0;
int indexOfHighlight;
do {
indexOfHighlight = text.indexOf(highlight, start);
if (indexOfHighlight < 0) {
// no highlight
spans.add(_normalSpan(text.substring(start, text.length)));
break;
}
if (indexOfHighlight == start) {
// start with highlight.
spans.add(_highlightSpan(highlight));
start += highlight.length;
} else {
// normal + highlight
spans.add(_normalSpan(text.substring(start, indexOfHighlight)));
spans.add(_highlightSpan(highlight));
start = indexOfHighlight + highlight.length;
}
} while (true);
return Text.rich(TextSpan(children: spans));
}
TextSpan _highlightSpan(String content) {
return TextSpan(text: content, style: style.copyWith(color: highlightColor));
}
TextSpan _normalSpan(String content) {
return TextSpan(text: content, style: style);
}
}
Vous pouvez utiliser ce plugin flutter plugin texte en surbrillance . C'est une assez bonne option pour essayer