Как выделить каждое слово в тексте в квадрате в трепете?

#android #ios #flutter #dart #mobile

Вопрос:

Я хочу выделить текст в Flutter, но я хочу выделить каждое слово в тексте в определенной последовательности. Итак, первое слово подсвечивается(а предыдущее возвращается к нормальному, т. е. не подсвечивается), затем второе, затем третье … и т. Д. Как я могу сделать что-то подобное в Трепете.

#Редактировать Я хочу анимировать его так, чтобы подсветка шла в определенной последовательности. Например, первое слово подсвечивается желтым цветом, затем оно возвращается в нормальное состояние, затем подсвечивается второе слово, а затем оно возвращается в нормальное состояние и так далее… Надеюсь, ты понял.

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

1. поможет ли этот фрагмент кода?

2. RichText( text: TextSpan( children: [ TextSpan(text: 'highlighted',style: TextStyle(color: Colors.black, backgroundColor: Colors.yellow)), TextSpan(text: ' the rest',style: TextStyle(color: Colors.black)), ] ), )

Ответ №1:

Вы можете попробовать:

 class HighlightedTextWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    String text = "Hello, this is a highlighted text in Flutter";
    List<String> textList = text.split(" ");
    return Scaffold(
      body: Center(
        child: Text.rich(
          TextSpan(
            children: textList.map((text)  {
              var index = textList.indexOf(text);
              if (index % 2 == 0) {
                return TextSpan(text: text, style: TextStyle(background: Paint()..color = Colors.cyan));
              }
              return TextSpan(text: text, style: TextStyle(background: Paint()..color = Colors.limeAccent));
            }).toList() ,
          ),
        ),
      ),
    );
  }
}
 

Это даст вам:

выделенный текст с трепетом

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

1. Я хочу анимировать его так, чтобы подсветка проходила в определенной последовательности. Например, первое слово подсвечивается желтым цветом, затем оно возвращается в нормальное состояние, а затем подсвечивается второе слово, а затем возвращается в нормальное состояние. Надеюсь, ты понял.