Как я могу динамически изменять цвет определенных слов абзаца в текстовом виджете в flutter

#string #list #flutter #colors #textspan

Вопрос:

Предположим, вам даны две строки. Один содержит слова, которые нужно раскрасить, а другой содержит абзац. пример:

Список слов =[«корова»,»молоко»,»крупный рогатый скот» ];

Строка абзаца = «Крупный рогатый скот, или коровы (самки) и быки (самцы), являются крупными одомашненными парнокопытными травоядными животными. Они являются выдающимся современным представителем подсемейства Bovinae, являются наиболее распространенными видами рода Bos и чаще всего классифицируются в совокупности как Bos taurus.»;

Мне нужно, чтобы эти слова в абзаце были цветным или ссылочным текстом. помогите пожалуйста

Например, как на картинке

Комментарии:

1. вам нужен RichText виджет

Ответ №1:

Оформить Заказ Выделите Текст. Вот небольшой пример того, как вы можете достичь желаемого эффекта.

 Map<String, HighlightedWord> words = {
    "cow": HighlightedWord(
        textStyle: textStyle,
    ),
    "milk": HighlightedWord(
       
        textStyle: textStyle,
    ),
    "cattle": HighlightedWord(
       
        textStyle: textStyle,
    ),
};
 

Ваш Текст

 TextHighlight(
    text: text, // Your text
    words: words, // Your highlighted words
);
 

Ответ №2:

Вам нужно разделить все слова из абзаца, а затем динамически назначить Richtext > TextSpan для каждого слова после проверки из вашего списка.