Flutter基本组件Text使用

简介: Flutter基本组件Text使用

Text是一个文本显示控件,用于在应用程序界面中显示单行或多行文本内容。

Text简单Demo
import 'package:flutter/material.dart';

class MyTextDemo extends StatelessWidget {
const MyTextDemo({super.key});

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text("My TEXT TEST")),
extendBody: true,
body: Column(
children: [
const Spacer(),
Container(
margin: const EdgeInsets.all(10),
child: Center(
child: Text(
"text one",
style: TextStyle(
fontSize: 28,
fontStyle: FontStyle.italic,
color: Colors.blue,
letterSpacing: 2,
wordSpacing: 10,
fontFamily: 'Roboto'),
textAlign: TextAlign.center,
softWrap: true,
overflow: TextOverflow.ellipsis,
),
),
),
const Spacer(),
],
),
);
}
}

重要属性
data
Text的默认构造函数中有一个必传的参数,且必须作为第一个传入的参数,类型是String,就是Text显示的文本。

const Text(
String this.data, {
super.key,
this.style,
this.strutStyle,
this.textAlign,
this.textDirection,
this.locale,
this.softWrap,
this.overflow,
@Deprecated(
'Use textScaler instead. '
'Use of textScaleFactor was deprecated in preparation for the upcoming nonlinear text scaling support. '
'This feature was deprecated after v3.12.0-2.0.pre.',
)
this.textScaleFactor,
this.textScaler,
this.maxLines,
this.semanticsLabel,
this.textWidthBasis,
this.textHeightBehavior,
this.selectionColor,
})

style
Text默认样式是DefaultTextStyle类型。如果需要修改样式,可以通过style参数传入一个TextStyle类型的值。

@override
Widget build(BuildContext context) {
...
final DefaultTextStyle defaultTextStyle = DefaultTextStyle.of(context);
...
}
style: TextStyle(
fontSize: 28,
fontStyle: FontStyle.italic,
color: Colors.blue,
letterSpacing: 2,
wordSpacing: 10,
fontFamily: 'Roboto'),
设置文本颜色
TextStyle(color: Colors.blue)

设置文本背景颜色
style:TextStyle(backgroundColor: Colors.green)

设置文本字体大小
style: TextStyle(fontSize: 100)

设置文本加粗
style: TextStyle(fontWeight: FontWeight.bold)

设置文本为斜体
style: TextStyle(fontStyle: FontStyle.italic)

设置文本之间的间隙
style: TextStyle(letterSpacing: 10,)

设置文本内单词间距
style: TextStyle(wordSpacing: 100)

设置文本行高
style: TextStyle(height: 10,)

设置文本阴影
style: TextStyle(

shadows: [
  Shadow(color: Colors.black, offset: Offset(3, 2))
])

设置文本内容删除线
style: TextStyle(
decoration: TextDecoration.lineThrough, decorationColor: Colors.yellow,)

设置文本内容下划线
style: TextStyle(
decoration: TextDecoration.underline, decorationColor: Colors.yellow,)

设置文本对齐方式
textAlign: TextAlign.center
居中

设置文本换行
softWrap:true换行;false不换行;
import 'package:flutter/material.dart';

class MyTextDemo extends StatelessWidget {
const MyTextDemo({super.key});

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text("My TEXT TEST")),
extendBody: true,
body: Column(
children: [
const Spacer(),
Container(
margin: const EdgeInsets.all(10),
child: Center(
child: Text(
"text one texttexttexttexttexttexttexttexttexttexttexttexttext",
style: TextStyle(
fontSize: 50,
fontStyle: FontStyle.italic,
color: Colors.blue,
backgroundColor: Colors.green,
letterSpacing: 0,
wordSpacing: 100,
fontWeight: FontWeight.bold,
fontFamily: 'Roboto',
decoration: TextDecoration.underline, decorationColor: Colors.yellow,
shadows: [
Shadow(color: Colors.black, offset: Offset(3, 2))
]),
textAlign: TextAlign.center,
maxLines: 3,
softWrap: true,
overflow: TextOverflow.ellipsis,
),
),
),
const Spacer(),
],
),
);
}
}

设置文本溢出
overflow: TextOverflow.ellipsis
设置文本显示最大行数
maxLines: 3
指定文本方向
textDirection: TextDirection.rtl
富文本
import 'package:flutter/material.dart';

class MyTextDemo extends StatelessWidget {
const MyTextDemo({super.key});

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text("My TEXT TEST")),
extendBody: true,
body: Column(
children: [
const Spacer(),
Container(
margin: const EdgeInsets.all(10),
child: Center(
// child: Text(
// "text one texttexttexttexttexttexttexttexttexttexttexttexttext",
// style: TextStyle(
// fontSize: 50,
// fontStyle: FontStyle.italic,
// color: Colors.blue,
// backgroundColor: Colors.green,
// letterSpacing: 0,
// wordSpacing: 100,
// fontWeight: FontWeight.bold,
// fontFamily: 'Roboto',
// decoration: TextDecoration.underline,
// decorationColor: Colors.yellow,
// shadows: [
// Shadow(color: Colors.black, offset: Offset(3, 2))
// ]),
// textAlign: TextAlign.center,
// maxLines: 3,
// softWrap: true,
// overflow: TextOverflow.ellipsis,
// textDirection: TextDirection.rtl),

            child: Text.rich(TextSpan(children: [
          TextSpan(
              text: "hhhhhhhhhhhhhhhhhhhhhhhh",
              style: TextStyle(
                  color: Colors.red,
                  fontSize: 18.0,
                  fontWeight: FontWeight.w700)),
          TextSpan(
              text: "ooooooooooooooooooo",
              style: TextStyle(
                  color: Colors.blue,
                  fontSize: 24.0,
                  fontWeight: FontWeight.w700)),
          TextSpan(
              text: "iiiiiiiiiiiiiiiiiiiiiiiiiii",
              style: TextStyle(
                  decoration: TextDecoration.lineThrough,
                  color: Colors.yellow,
                  fontSize: 14.0)),
          TextSpan(text: "lllllllllllllllllllllllllll")
        ]))),
      ),
      const Spacer(),
    ],
  ),
);

}
}

相关文章
|
2月前
|
传感器 缓存 监控
Stream 组件在 Flutter 中的应用场景有哪些?
Stream 组件在 Flutter 中的应用场景有哪些?
175 58
|
2月前
|
UED 开发者
Flutter|常用数据通信组件
Flutter|常用数据通信组件
103 49
|
17天前
Flutter 自定义组件继承与调用的高级使用方式
本文深入探讨了 Flutter 中自定义组件的高级使用方式,包括创建基本自定义组件、继承现有组件、使用 Mixins 和组合模式等。通过这些方法,您可以构建灵活、可重用且易于维护的 UI 组件,从而提升开发效率和代码质量。
114 1
|
17天前
|
开发工具 UED
Flutter&鸿蒙next中封装一个输入框组件
本文介绍了如何创建一个简单的Flutter播客应用。首先,通过`flutter create`命令创建项目;接着,在`lib`目录下封装一个自定义输入框组件`CustomInput`;然后,在主应用文件`main.dart`中使用该输入框组件,实现简单的UI布局和功能;最后,通过`flutter run`启动应用。本文还提供了后续扩展建议,如状态管理、网络请求和UI优化。
94 1
|
20天前
|
Dart UED
Flutter用户交互组件
Flutter用户交互组件
20 2
|
2月前
|
开发工具
Flutter-AnimatedWidget组件源码解析
Flutter-AnimatedWidget组件源码解析
173 60
|
1月前
|
存储 开发框架 开发者
flutter:代码存储&基本组件 (五)
本文档介绍了Flutter中的一些基本组件和代码示例,包括代码存储、基本组件如AppBar的简单使用、可滑动切换的标签栏、TextField的多种用法(如简单使用、登录页面、文本控制器的监听与使用、修饰等),以及如何实现点击空白区域隐藏键盘等功能。通过这些示例,开发者可以快速掌握在Flutter应用中实现常见UI元素的方法。
|
15天前
|
开发工具
Flutter&鸿蒙next中封装一个列表组件
Flutter&鸿蒙next中封装一个列表组件
30 0
|
2月前
|
开发者
Flutter|常用数据通信组件
Flutter|常用数据通信组件
|
2月前
Stream 组件在 Flutter 中的具体使用方法是什么?
Stream 组件在 Flutter 中的具体使用方法是什么?