Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Flutter different color for different letters in a Text widget

I have a use-case where I want to change the colour of a letter in a String inside a Text widget. Let's say that my String is "Flutter". On pressing the FloatingActionButton, I want the letter 'F' to change its colour, then on the next press of the FloatingActionButton, change the colour of letter 'l', then 'u', then 't', then 't', then 'e' and then finally 'r' with every FloatingActionButton press.

Please don't suggest having a different Text widget for every letter.

like image 281
Rohan Taneja Avatar asked Dec 26 '18 20:12

Rohan Taneja


People also ask

How do you change the text color in theme Flutter?

Steps to change theme text color in Flutter You can change theme text color in Flutter, by defining the TextTheme (inside MaterialApp) and then adding headings type. For example, headline1 , headline2 , BodyText1 , and so on. After that, you can assign the TextStyle widget with the color of your choice.

How do you change a string color to color in Flutter?

Instead, you can parse the string into a value and construct a new Color object. Color color = new Color(0x12345678); String colorString = color. toString(); // Color(0x12345678) String valueString = colorString. split('(0x')[1].


2 Answers

You can do this using a RichText widget and different TextSpans. You can read the documentation to familiarize yourself with it more. https://api.flutter.dev/flutter/widgets/RichText-class.html

like image 70
Stephen Avatar answered Nov 04 '22 05:11

Stephen


RichText(
  text: TextSpan(
    text: 'Hello ',
    style: DefaultTextStyle.of(context).style,
    children: const <TextSpan>[
      TextSpan(text: 'bold', style: TextStyle(fontWeight: FontWeight.bold)),
      TextSpan(text: ' world!'),
    ],
  ),
)
like image 30
MUSHTHAK VP Avatar answered Nov 04 '22 05:11

MUSHTHAK VP