Text
Text виджети тексттин сызыгын көрсөтүү үчүн иштелип чыккан. Виджет түзүү жана аны орнотуу үчүн төмөнкү виджет конструкторун колдонсоңуз болот:
Text(String data, {Key key, TextStyle style, StrutStyle strutStyle, TextAlign textAlign, TextDirection textDirection,
Locale locale, bool softWrap, TextOverflow overflow, double textScaleFactor, int maxLines, String semanticsLabel,
TextWidthBasis textWidthBasis, TextHeightBehavior textHeightBehavior})
Виджеттин негизги параметрлери:
style : Тексттин стилин аныктайт, мисалы, тексттин түсү, фондун түсү, шрифттер тобу, шрифт өлчөмү жана башкалар. TextStyle классынын объектисин билдирет .
strutStyle : Негизги сызыкка салыштырмалуу минималдуу сызык бийиктигин орнотот. StrutStyle классын билдирет .
textAlign : горизонталдуу тегиздөөнү орнотот. TextAlign тизмегин билдирет жана төмөнкү маанилерди алат:
TextAlign.center: борборго тегиздөө.
TextAlign.left: контейнердин сол четине тегиздөө.
TextAlign.right : экрандын оң четине тегиздөө.
TextAlign.justify: текстти саптын бүткүл узундугу боюнча созуу.
TextAlign.end: саптын аягында тегиздөө. Солдон оңго текст үчүн бул контейнердин оң чети, ал эми оңдон солго текст үчүн бул контейнердин сол чети.
TextAlign.start: саптын башында тегиздөө. Солдон оңго текст үчүн бул контейнердин сол чети, ал эми оңдон солго текст үчүн бул контейнердин оң чети.
textDirection : тексттин багытын белгилейт. TextDirection тизмегин билдирет . Негизги маанилер: TextDirection.ltr (солдон оңго карай текст) жана TextDirection.rtl (оңдон солго).
locale : тилди же болжол менен айтканда тилди орнотот. Locale классынын объектисин билдирет.
softWrap : тексти узундугуна карай, чегине жеткенде кийинки сапка өтүүсүн аныктайт.
overflow : Тeкс жеткиликтүү узундуктан ашканда кантип кыскартыларын аныктайт. TextOverflow номерин билдирет .
textScaleFactor : Ар бир логикалык пиксел үчүн жылыш пикселдердин санын аныктайт.
maxLines : тексттин саптарынын максималдуу санын аныктайт
textWidthBasis : Тексттин туурасы кантип ченелерин белгилейт.
textHeightBehaviorTextStyle.height : Маани тексттин биринчи жана акыркы саптарына кандай колдонуларын аныктайт . TextHeightBehavior классын билдирет .
String түрүнүн биринчи параметри талап кылынат жана көрсөтүлүп жаткан чыныгы билдирүүнү билдирет. Калган параметрлер милдеттүү эмес.
Бул мисал TextOverflow.ellipsis деп коюлган ашыкча Текст виджетинин жардамы менен текстти кантип көрсөтүү керектигин көрсөтөт .
Text(
'Hello, $_name! How are you?',
textAlign: TextAlign.center,
overflow: TextOverflow.ellipsis,
style: const TextStyle(fontWeight: FontWeight.bold),
)
Text.rich конструкторун колдонуп , Text виджети ар кандай стилдеги TextSpan менен абзацты көрсөтө алат . Кийинки үлгүдө ар бир сөз үчүн ар кандай стилдер менен "Hello beautiful world" көрсөтүлөт.
const Text.rich(
TextSpan(
text: 'Hello', // default text style
children: <TextSpan>[
TextSpan(text: ' beautiful ', style: TextStyle(fontStyle: FontStyle.italic)),
TextSpan(text: 'world', style: TextStyle(fontWeight: FontWeight.bold)),
],
),
)
Интерактивдүүлүк
Материалдык дизайн тиркемесинде анын ордуна TextButton колдонуңуз , же бул туура эмес болсо, жок дегенде GestureDetector ордуна InkWell колдонуңуз .
Тексттин бөлүктөрүн интерактивдүү кылуу үчүн, RichText колдонуңуз жана тексттин тиешелүү бөлүгүнүн TextSpan.recognizer катары TapGestureRecognizer ди көрсөтүңүз.
Бул үлгү SelectionArea астындагы Текст үчүн тандоону кантип өчүрүү керектигин көрсөтөт.
Бул код үлгүсү менен жергиликтүү долбоорду түзүү үчүн, иштетиңиз:
flutter create --sample=widgets.Text.3 mysample
import 'package:flutter/material.dart';
void main() => runApp(const SelectionContainerDisabledExampleApp());
class SelectionContainerDisabledExampleApp extends StatelessWidget {
const SelectionContainerDisabledExampleApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: const Text('SelectionContainer.disabled Sample')),
body: const Center(
child: SelectionArea(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text('Selectable text'),
SelectionContainer.disabled(child: Text('Non-selectable text')),
Text('Selectable text'),
], ), ), ), ), ); } }