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 中的应用场景有哪些?
168 58
|
2月前
|
UED 开发者
Flutter|常用数据通信组件
Flutter|常用数据通信组件
100 49
|
2天前
|
Dart UED
Flutter用户交互组件
Flutter用户交互组件
9 2
|
2月前
|
开发工具
Flutter-AnimatedWidget组件源码解析
Flutter-AnimatedWidget组件源码解析
164 60
|
17天前
|
存储 开发框架 开发者
flutter:代码存储&基本组件 (五)
本文档介绍了Flutter中的一些基本组件和代码示例,包括代码存储、基本组件如AppBar的简单使用、可滑动切换的标签栏、TextField的多种用法(如简单使用、登录页面、文本控制器的监听与使用、修饰等),以及如何实现点击空白区域隐藏键盘等功能。通过这些示例,开发者可以快速掌握在Flutter应用中实现常见UI元素的方法。
|
2月前
|
开发者
Flutter|常用数据通信组件
Flutter|常用数据通信组件
|
17天前
|
开发者
flutter:功能性组件 (八)
本文介绍了Flutter中常用的UI组件和功能,包括进度指示器(线性和圆形)、下拉刷新、选项按钮(单选按钮、复选框、开关)、手势识别(GestureDetector、Ink和InkWell)以及提示和Offstage组件的使用方法和示例代码。这些组件和功能可以帮助开发者快速构建交互丰富的应用程序界面。
|
2月前
Stream 组件在 Flutter 中的具体使用方法是什么?
Stream 组件在 Flutter 中的具体使用方法是什么?
|
2月前
|
Dart
Flutter|常用数据通信组件
在做需求时经常会遇到组件间通信,本篇汇总了几种常用的通信方式
28 1
|
4月前
|
Dart 开发者 UED
flutter 非常用组件整理 第三篇
本文是非常用组件的第三讲,介绍了一些不为人知但却能大幅提升Flutter应用UI效果和功能的高级组件,包括FadeInImage、GridPaper、Hero等,为开发者带来更丰富的UI设计可能。
flutter 非常用组件整理 第三篇