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:
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:
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