#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. Я хочу анимировать его так, чтобы подсветка проходила в определенной последовательности. Например, первое слово подсвечивается желтым цветом, затем оно возвращается в нормальное состояние, а затем подсвечивается второе слово, а затем возвращается в нормальное состояние. Надеюсь, ты понял.