以下源码部分均只给出构造函数属性部分
1Text
在Flutter中,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,
})
参数说明:
- data:要显示的文本内容,是必需的参数。
- key:用于识别此组件的唯一键。通常用于测试和框架内部算法。
- style:文本样式,用于定义文本的字体、大小、颜色等。
- strutStyle:用于控制行高的样式,可以在字体大小相同的情况下,调整不同行之间的间距,使得文本更加美观。
- textAlign:文本的对齐方式,可以是左对齐、右对齐、居中对齐等。
- textDirection:文本的方向,可以是从左向右(TextDirection.ltr)或从右向左(TextDirection.rtl)。
- locale:文本的语言环境,用于国际化和本地化。
- softWrap:当文本内容超出容器宽度时,是否自动换行。
- overflow:当文本内容超出容器高度或宽度时的处理方式,可以是省略号、截断或滚动。
- textScaleFactor:(已弃用)文本缩放因子,用于调整文本大小。从3.12.0-2.0.pre版本开始已弃用,推荐使用textScaler属性。
- textScaler:文本缩放器,用于控制文本的缩放行为。
- maxLines:文本显示的最大行数,超出部分会被省略或截断。
- semanticsLabel:用于辅助技术的文本标签,例如屏幕阅读器。
- textWidthBasis:文本宽度的基础计算方式,默认为父容器的宽度。
- textHeightBehavior:用于控制文本的行高,例如行间距等。
- selectionColor:文本被选中时的背景颜色。
2RichText
RichText 组件是 Flutter 中用于显示富文本的组件,它允许在文本中应用不同的样式和属性。相比于 Text 组件,RichText 更加灵活,可以实现更复杂的文本排版效果。
源码:
RichText({
super.key,
required this.text,
this.textAlign = TextAlign.start,
this.textDirection,
this.softWrap = true,
this.overflow = TextOverflow.clip,
@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.',
)
double textScaleFactor = 1.0,
TextScaler textScaler = TextScaler.noScaling,
this.maxLines,
this.locale,
this.strutStyle,
this.textWidthBasis = TextWidthBasis.parent,
this.textHeightBehavior,
this.selectionRegistrar,
this.selectionColor,
})
参数说明:
- key:用于识别此组件的唯一键。通常用于测试和框架内部算法。
- text:包含样式的文本内容,是必需的参数。
- textAlign:文本的对齐方式,默认为TextAlign.start,即左对齐。
- textDirection:文本的方向,可以是从左向右或从右向左。
- softWrap:当文本内容超出容器宽度时,是否自动换行,默认为true。
- overflow:当文本内容超出容器高度或宽度时的处理方式,默认为TextOverflow.clip,即裁剪。
- textScaleFactor:(已弃用)文本缩放因子,用于调整文本大小。从3.12.0-2.0.pre版本开始已弃用,推荐使用textScaler属性。
- textScaler:文本缩放器,用于控制文本的缩放行为。
- maxLines:文本显示的最大行数,超出部分会被省略。
- locale:文本的语言环境,用于国际化和本地化。
- strutStyle:用于控制行高的样式,可以在字体大小相同的情况下,调整不同行之间的间距。
- textWidthBasis:文本宽度的基础计算方式,默认为TextWidthBasis.parent,即父容器的宽度。
- textHeightBehavior:用于控制文本的行高,例如行间距等。
- selectionRegistrar:用于管理文本的选中状态。
- selectionColor:文本被选中时的背景颜色。
3TextStyle
TextStyle 是用于指定文本样式的类,用于设置文本的外观和格式。
源码:
TextStyle({
this.inherit = true,
this.color,
this.backgroundColor,
this.fontSize,
this.fontWeight,
this.fontStyle,
this.letterSpacing,
this.wordSpacing,
this.textBaseline,
this.height,
this.leadingDistribution,
this.locale,
this.foreground,
this.background,
this.shadows,
this.fontFeatures,
this.fontVariations,
this.decoration,
this.decorationColor,
this.decorationStyle,
this.decorationThickness,
this.debugLabel,
String? fontFamily,
List<String>? fontFamilyFallback,
String? package,
this.overflow,
})
参数说明:
- inherit: 是否继承父级文本样式,默认为 true。如果设置为 true,则会继承父级的文本样式;如果设置为 false,则会忽略父级的样式。
- color: 文本颜色。
- backgroundColor: 文本背景颜色。
- fontSize: 字体大小。
- fontWeight: 字重,用于设置文本的粗细程度,例如 FontWeight.bold 表示粗体。
- fontStyle: 字体样式,可以是 FontStyle.normal(正常)或 FontStyle.italic(斜体)。
- letterSpacing: 字母间距,控制相邻字母之间的距离。
- wordSpacing: 单词间距,控制相邻单词之间的距离。
- textBaseline: 文本基线,用于对齐文本的底部。
- height: 行高,用于控制文本行与行之间的距离。
- leadingDistribution: 行高分布方式,用于设置行高的分布方式,例如 TextLeadingDistribution.even 表示均匀分布。
- locale: 文本的语言环境,用于国际化和本地化。
- foreground: 文本前景色,与 color 类似,但具有更高的优先级。
- background: 文本背景色,与 backgroundColor 类似,但具有更高的优先级。
- shadows: 文本阴影,可以设置多个阴影效果。
- fontFeatures: 字体特性,用于设置字体的特性,例如小型大写字母等。
- fontVariations: 字体变体,用于设置字体的变体,例如宽度、风格等。
- decoration: 文本装饰,可以是 TextDecoration.none(无装饰)、TextDecoration.underline(下划线)等。
- decorationColor: 文本装饰颜色。
- decorationStyle: 文本装饰样式,可以是 TextDecorationStyle.solid(实线)等。
- decorationThickness: 文本装饰厚度,用于设置装饰线的粗细。
- debugLabel: 用于调试的标签。
- fontFamily: 字体族名称,用于指定字体的名称。
- fontFamilyFallback: 字体族后备名称,如果指定的字体不可用,将会尝试使用后备名称。
- package: 字体族所在的包名称。
- overflow: 文本溢出处理方式,例如 TextOverflow.ellipsis(省略号)表示文本溢出时使用省略号表示。
4Container
Container 是一个常用的布局组件,用于包裹其它子组件,并提供一些样式和布局属性。
源码:
Container({
super.key,
this.alignment,
this.padding,
this.color,
this.decoration,
this.foregroundDecoration,
double? width,
double? height,
BoxConstraints? constraints,
this.margin,
this.transform,
this.transformAlignment,
this.child,
this.clipBehavior = Clip.none,
})
参数说明:
- alignment: 子组件在容器内的对齐方式,默认为顶部居左对齐 (Alignment.topLeft)。
- padding: 容器的内边距,用于控制容器内部子组件与容器边界的距离。
- color: 容器的背景颜色。
- decoration: 容器的装饰,可以是背景图片、边框、阴影等。
- foregroundDecoration: 容器的前景装饰,与 decoration 类似,但是在子组件之上。
- width: 容器的宽度。如果设置了宽度,则容器的宽度为指定的宽度,否则会根据子组件的大小自动调整。
- height: 容器的高度。如果设置了高度,则容器的高度为指定的高度,否则会根据子组件的大小自动调整。
- constraints: 容器的约束条件,用于限制容器的大小。
- margin: 容器的外边距,用于控制容器与其它组件之间的距离。
- transform: 容器的变换矩阵,用于对容器进行旋转、缩放、平移等操作。
- transformAlignment: 变换的原点位置,默认为容器的中心点。
- child: 容器中包含的子组件。
- clipBehavior: 子组件裁剪行为,默认为 Clip.none,表示不裁剪子组件。可以设置为 Clip.hardEdge、Clip.antiAlias 或 Clip.antiAliasWithSaveLayer,用于控制子组件的裁剪方式。