Widget TextSpan en Flutter

TextSpan es un intervalo de texto inmutable . Tiene propiedad de estilo para dar estilo al texto. También tiene la propiedad de niños para agregar más texto a este widget y darle estilo a los niños. Entendamos esto con la ayuda de un ejemplo.

Constructores:

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

Propiedades:

  • text: El texto contenido en el lapso.
  • niños: Más tramos para incluir como niños.
  • estilo: El TextStyle dado al texto.
  • reconocedor: el detector de gestos cuando el usuario presiona el widget TextSpan.
  • semanticsLabel: una etiqueta semántica alternativa para este widget.
  • hashCode: este parámetro toma un valor int como objeto para proporcionar un código hash al widget TextSpan. El código hash es un valor entero que representa el estado del objeto que afecta al operador == comparación.
  • runtimeType: esta propiedad toma un tipo como objeto para representar el tipo de tiempo de ejecución del objeto. Esta propiedad admite seguridad nula.

Ejemplo:

Dart

import 'package:flutter/material.dart';
 
void main() {
  runApp(MyApp());
}
 
class MyApp extends StatelessWidget {
  // This widget is
  //the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'TextSpan',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
      debugShowCheckedModeBanner: false,
    );
  }
}
 
class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}
 
class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('GeeksforGeeks'),
        backgroundColor: Colors.green
        ),
        body: Center(
          child: Text.rich(
            TextSpan(
              text: 'This is textspan ',
              children: <InlineSpan>[
                TextSpan(
                  text: 'Widget in flutter',
                  style: TextStyle(fontSize: 20,fontWeight: FontWeight.bold),
                )
              ]
            )
          ),
        ),
        backgroundColor: Colors.lightBlue[50],
    );
  }
}

Producción:

Si las propiedades se definen de la siguiente manera:

TextSpan(
              text: 'This is textspan ',
              style: TextStyle(fontSize: 20,fontWeight: FontWeight.bold),
              children: <InlineSpan>[
                TextSpan(
                  text: 'Widget in flutter',
                )
              ]
            )

Se pueden observar los siguientes cambios de diseño:

full textspan in flutter

Si las propiedades se definen de la siguiente manera:

TextSpan(
              text: 'This is textspan ',
              children: <InlineSpan>[
                TextSpan(
                  text: 'Widget in flutter',
                  style: TextStyle(fontSize: 20,fontWeight: FontWeight.bold),
                )
              ]
            )

Se pueden observar los siguientes cambios de diseño:

textspan in flutter

Explicación:

  • Cree el widget TextSpan y envuélvalo con el widget Text.rich() .
  • Dele el texto a TextSpan y agréguele más elementos secundarios en línea.
  • Dar estilo al texto y ver el resultado.

Métodos:

  • build (constructor ParagraphBuilder, {doble textScaleFactor: 1.0, List<PlaceholderDimensions>? dimensiones})  
@override
void build (
ParagraphBuilder builder,
{double textScaleFactor: 1.0,
List<PlaceholderDimensions>? dimensions}
)
override

Este método de construcción ayuda a construir el dibujo de los objetos de párrafo. El párrafo se puede obtener aplicando el estilo, el texto y los elementos secundarios de este objeto al ParagraphBuilder dado . 

  • compareTo (InlineSpan otro) → RenderComparison
@override
RenderComparison compareTo (
InlineSpan other
)
override

Este método devuelve la diferencia entre este lapso y otro, en términos del daño que se le puede hacer al renderizado.

  • toStringShort() → String
@override
String toStringShort ()
override

Este método proporciona una descripción concisa del objeto, que suele ser runtimeType y hashCode.

  • visitChildren (InlineSpanVisitor visitante) → bool
@override
bool visitChildren (
InlineSpanVisitor visitor
)
override

Este método mueve este TextSpan y su elemento secundario en preorden y llama al visitante para cada tramo que tiene texto.

Operador:

  • operador ==(Objeto otro) → bool
@override
bool operator == (
Object other
)
override

El operador de igualdad.

La acción predeterminada para todos los objetos es devolver verdadero si y solo si este objeto y otro son el mismo objeto. Este método se anula para definir una relación de igualdad diferente en una clase.

Publicación traducida automáticamente

Artículo escrito por singh_teekam y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *