TextSpan Widget Flutter - DevhubSpot

Flutter Wrap Widget

TextSpan object can be styled using its style property. The style will be applied to the text and the children.

A TextSpan object can just have plain text, or it can have children TextSpan objects with their own styles that (possibly only partially) override the style of this object. If a TextSpan has both text and children, then the text is treated as if it was an un-styled TextSpan at the start of the children list. Leaving the TextSpan.text field null results in the TextSpan acting as an empty node in the InlineSpan tree with a list of children.

Constructors:

Syntax:
TextSpan({String text, 
List<InlineSpan> children, 
TextStyle style, 
GestureRecognizer recognizer, 
String semanticsLabel})

Properties:

text: The text contained in the span.

children: More spans to include as children.

style: The TextStyle gave to the text.

recognizer: The gesture detector when the user hit the TextSpan widget.

semanticsLabel: An alternative semantic label for this widget.

hashCode: This parameter takes in an int value as the object to provide a hash code to the TextSpan widget. Hash code is an integer value that represents the state of the object that affects operator == comparison.

runtimeType: This property takes in a Type as the object to represent the runtime type of the object. This property supports null safety.

Implementation with Example:

Main.dart

import 'package:counterapp/widgets/TextSpanWidget.dart';
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: TextSpanWidget()
    );
  }
}


WrapWidget.dart

import 'package:flutter/material.dart';

class TextSpanWidget extends StatefulWidget {
  const TextSpanWidget({super.key});

  @override
  State<TextSpanWidget> createState() => _TextSpanWidgetState();
}

class _TextSpanWidgetState extends State<TextSpanWidget> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.white,
      body: SafeArea(
        child: Padding(
          padding: const EdgeInsets.all(10.0),
          child: Center(
            child: Text.rich(
              TextSpan(
                text: "DevhubSpot ",
                style: TextStyle(
                  fontSize: 20,
                  color: Colors.black87
                ),
                children: [
                  TextSpan(
                    text: "Developer Community",
                    style: TextStyle(
                      fontWeight: FontWeight.w700,
                      color: Colors.orangeAccent
                    )
                  ),
                  TextSpan(
                    text: " :)",
                    style: TextStyle(
                      fontWeight: FontWeight.w700,
                      color: Colors.purpleAccent
                    )
                  )
                ]
              )
            ),
          ),
        )
      ),
    );
  }

Result:


Flutter Wrap Widget
Comments

AdBlock Detected!

Our website is made possible by displaying ads to our visitors. Please supporting us by whitelisting our website.