Flutter RichText: Simple way to Styling your Text

Ever wanted to spice up your app’s text beyond the basic styles? Whether you’re looking to add a splash of color, mix different fonts, or even include clickable links, Flutter’s RichText widget has got you covered. Think of it as the ultimate tool in your Flutter toolkit for turning plain, boring text into something visually appealing and dynamic. 

Let’s move into the details of using RichText in Flutter and explore its powerful capabilities. 

What is RichText?

The RichText widget in Flutter is designed to display text with multiple styles and attributes. Unlike the Text widget, which allows you to style the entire string uniformly, RichText uses the TextSpan widget to style individual segments of text. This makes it incredibly versatile for creating complex text layouts. 

Why Use RichText?

1. Highlight Important Information:

If you need to highlight certain words or phrases within a paragraph, RichText is perfect for the job. For example, you might have a sentence that requires highlighting specific terms in bold or color: 

RichText
  text: const TextSpan
    text: ‘Your account balance is ‘, 
    style: TextStyle(color: Colors.black, fontSize: 16), 
    children: <TextSpan>
      TextSpan
        text:\$1,200′
        style: TextStyle(color: Colors.green, fontWeight: FontWeight.bold), 
      ), 
      TextSpan
        text: ‘ as of today.’, 
      ), 
    ], 
  ), 

Here, the amount is highlighted in green and bold to draw attention, making it clear and prominent for users. 

2. Clickable Links:

You can use RichText to create interactive text elements. This is especially useful in applications where text needs to perform actions, like navigating to another page or opening a link in a browser: 

Sample 1: 

RichText
  text: TextSpan
    text: ”’Don’t Have an account?”’, 
    style: const TextStyle(color: Colors.black), 
    children: <TextSpan>[ 
      TextSpan
        text: ‘ SignUp ‘, 
        style: const TextStyle(color: Colors.blue, decoration: TextDecoration.underline), 
        recognizer: TapGestureRecognizer()..onTap = () { 
          // Navigate to SignupScreen 
          Navigator.of(context).pushReplacement(MaterialPageRoute
              builder: (context){ 
                 return SignUpScreen(); 
            })); 
        }, 
      ), 
    ], 
  ), 

Here, The TextSpan for “SignUp” is styled differently and includes a TapGestureRecognizer, making it clickable. When tapped, it triggers a navigation action to the SignUpScreen. 

Sample2:

RichText
  text: TextSpan
    text: ‘By signing up, you agree to our ‘, 
    style: const TextStyle(color: Colors.black), 
    children: <TextSpan>[ 
      TextSpan
        text: ‘Terms of Service’
        style: const TextStyle(color: Colors.blue, decoration: TextDecoration.underline), 
        recognizer: TapGestureRecognizer()..onTap = () { 
          // Handle link tap here 
          print(‘Terms of Service clicked’); 
        }, 
      ), 
      const TextSpan
        text: ‘ and ‘
      ), 
      TextSpan
        text: ‘Privacy Policy’
        style: const TextStyle(color: Colors.blue, decoration: TextDecoration.underline), 
        recognizer: TapGestureRecognizer()..onTap = () { 
          // Handle link tap here 
          print(‘Privacy Policy clicked’); 
        }, 
      ), 
      const TextSpan
        text: ‘.’, 
      ), 
    ], 
  ), 

This example demonstrates how to make certain text segments clickable, which is useful for terms and privacy notices. 

3. Inline Icons and Widgets:

RichText is not limited to just text; it allows for inline widgets too. You can insert icons, images, or other widgets directly within the text, 

RichText
  text: const TextSpan
    children: [ 
      WidgetSpan
        child
            Icon(Icons.star, size: 20, color: Colors.yellow), 
      ), 
      TextSpan
        text: ‘ Flutter is the future!’
        style: TextStyle(color: Colors.black, fontSize: 20), 
      ), 
    ], 
  ), 
), 

Conclusion

And there you have it!  With the RichText widget, you now have the power to transform your app’s text from plain to spectacular. Whether you’re highlighting important information, adding clickable links, or embedding icons and widgets, RichText makes it easy to create beautiful and engaging text layouts. So go ahead, get creative, and make your text stand out! You can add that extra bit of flair and make your app more beautiful than ever. 

You might find these article interesting

Leave a Comment

Your email address will not be published. Required fields are marked *