RichText小部件用于显示使用各种不同样式的文本。显示的文本是使用TextSpan对象树来描述的,每个对象都有自己的关联样式,用于该子树。根据布局约束,文本可能会跨多行显示,也可能全部显示在同一行上。
构造函数:
Syntax:
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,
特性:
- 孩子:树中此小部件下方的小部件。
- hashCode:此对象的哈希码。
- key:控制一个小部件如何替换树中的另一个小部件。
- runtimeType:对象的运行时类型的表示。
- 文本:要在此小部件中显示的文本。
- textAlign:文本应该如何水平对齐。
- local:该属性以Locale类为对象。它根据使用的语言控制用于文本的字体。
- maxLines: maxLines属性接受一个 int 值作为对象。它控制可用于文本展开和换行的最大行数。
- 溢出: TextOverflow枚举是提供给它的类的对象,它在溢出的情况下控制文本。
- softWrap:这个属性接受一个布尔值作为对象。如果将其设置为 false,则文本中的深渊会变宽。
- textDirection:该属性以TextDirection类为对象来决定文本的方向。它可以是从左到右或从右到左。
- textHightBehaviour: TextHeightBehavior类是赋予此属性的对象。它控制文本将如何突出显示。
- textScaleFactor:这个属性取一个double值作为对象来确定字体的相对大小。
- textWidthBasis: TextWidthBasis枚举是这个属性的对象。它控制正在测量的单行文本的宽度。
例子:
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: 'ClipOval',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePAGE(),
debugShowCheckedModeBanner: false,
);
}
}
class MyHomePAGE extends StatefulWidget {
@override
_MyHomePAGEState createState() => _MyHomePAGEState();
}
class _MyHomePAGEState extends State {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('GeeksforGeeks'),
backgroundColor: Colors.green,
),
body: Center(
child: RichText(
text: TextSpan(
text: 'Hello ',
style: DefaultTextStyle.of(context).style,
children: [
TextSpan(text: 'Geeks', style: TextStyle(fontWeight: FontWeight.bold)),
],
),
)
),
backgroundColor: Colors.lightBlue[50],
);
}
}
class MyClip extends CustomClipper {
Rect getClip(Size size) {
return Rect.fromLTWH(0, 0, 100, 100);
}
bool shouldReclip(oldClipper) {
return false;
}
}
输出:
解释:
- 首先创建一个无状态小部件作为应用程序的主要小部件。
- 其次定义一个使用有状态小部件表示主屏幕的类。
- 第三个定义脚手架小部件内的应用栏。
- 最后,将Richtext小部件放在中心。
想要一个更快节奏和更具竞争力的环境来学习 Android 的基础知识吗?
单击此处前往由我们的专家精心策划的指南,旨在让您立即做好行业准备!