RichText
RichText виджети ар кандай стилдеги текстти көрсөтүүгө мүмкүндүк берет. Буга RichText ичиндеги тексттин ар бир жеке бөлүгү TextSpan объектисин көрсөтүүсү менен жетишилет , ал үчүн сиз өз стилиңизди орното аласыз.
RichText түзүү үчүн төмөнкү конструктор колдонулат:
RichText({Key key, @required InlineSpan text, TextAlign textAlign: TextAlign.start, TextDirection textDirection, bool softWrap: true,
TextOverflow overflow: TextOverflow.clip, double textScaleFactor: 1.0, int maxLines, Locale locale, StrutStyle strutStyle,
TextWidthBasis textWidthBasis: TextWidthBasis.parent, TextHeightBehavior textHeightBehavior})
Конструктор параметрлеринин көбү Text классынын конструктор параметрлери менен бирдей. Демек, биз аларды Текст виджетин түзүү жана конфигурациялоодогудай колдоно алабыз. айырмаланган параметрлерди гана карап көрөлү.
Биринчиден, текст InlineSpantext объектисин билдирген параметр менен орнотулат . Чындыгында, эреже катары, бул параметр TextSpan классынын объектисине өтөт (ал InlineSpan'дан алынган). Чындыгында TextSpan бул тексттин белгилүү бир бөлүгү.
TextSpan түзүү үчүн төмөнкү конструктор колдонулат:
TextSpan({String text, List<InlineSpan> children, TextStyle style, GestureRecognizer recognizer, String semanticsLabel})
Биринчи параметр textобъекттин чыныгы текстин билдирет. Бирок мындан тышкары, параметрди колдонуп, children кошумча InlineSpan объектилерин (анын ичинде TextSpan объектилерин) аласыз, алар текстти да камтышы мүмкүн. Үчүнчү параметр - style текст үчүн белгилүү бир стилди коюуга мүмкүндүк берет.
Эң жөнөкөй RichTextти карап көрөлү:
import 'package:flutter/material.dart';
void main() {
runApp(Container(
padding: EdgeInsets.only(top:25, left:10, right:10),
color: Colors.teal,
child: RichText(
textDirection: TextDirection.ltr,
text: TextSpan(
text: "Hello Flutter",
style: TextStyle(fontSize: 20),
children: <TextSpan>[
TextSpan(text: " from ", style: TextStyle(color: Colors.red)),
TextSpan(text: "Metanit.com", style: TextStyle(fontWeight: FontWeight.bold)),
], ), ), ), ); }
Бул учурда, RichText ичиндеги бардык текст салынган TextSpan виджетинде капсулдалат, анын өзү башка TextSpan объектисин камтыйт. Чынында, эки салынган TextSpans тексти жөн гана TextSpan негизги текстине кошулат.