Flutter 常用 - Text

407 阅读2分钟

Text

const Text(

String this.data, { //必传参数、可以隐藏参数名

Key? key,

this.style, //Text的样式设置,可以设置背景、大小、颜色等 见 TextStyle

this.strutStyle,//Text自定义样式 见 strutStyle

this.textAlign,//居中,左对齐,右对齐等

this.textDirection,//从左到右,或者从右到左(阿拉伯语问题)

this.locale,//用于选择用户语言和格式设置首选项的标识符 类型 Locale

this.softWrap,//是否允许换行显示

this.overflow,//超出屏幕显示方式- 超出省略

this.textScaleFactor,//每个逻辑像素的字体像素数。

this.maxLines,//可选的最大文本行数,必要时可换行。不能设置0

this.semanticsLabel,//此文本的另一个语义标签。

this.textWidthBasis,//测量一行或多行文本宽度的不同方法。

this.textHeightBehavior,//测量一行或多行文本高度的不同方法。

})

TextStyle
const TextStyle({
    this.inherit = true,//是否使用外部组件(或者全局)的样式来替换当前的style,默认是true
    
    this.color,//文本的颜色
    
    this.fontSize,//文本大小
    
    this.fontWeight,//文本字体粗细
    
    this.fontStyle,//文本的样式
    
    this.letterSpacing,//每一个字母之间的距离,可以使用负值缩小空白
    
    this.wordSpacing,//每个单词(相当于一个连续的文本)之间的距离,可以使用负值缩小空白
    
    this.textBaseline,//文本对齐的基准线
    
    this.height,//文字高度
    
    this.locale,//根据你当前国际化本地环境的情况自动切换文本语言
    
    this.foreground,//绘制一个前景(与背景相反),类型为Paint 
    
    this.background,//绘制一个背景,类型为Paint 
    
    this.shadows,//将在文本下方绘制阴影列表
    
    this.decoration,//可以在文本下方进行装饰,比如绘制一个下划线,类型为TextDecoration
    
    this.decorationColor,//文本下方装饰器的颜色
    
    this.decorationStyle,//文本装饰器的样式
    
    this.debugLabel,//debug模式下默认显示的提示
    
    String fontFamily,//用来重新创建文本样式(一般使用在我们外部引入的字体库的时候,但是外部引入字体库以后这里必须指定package,package+fontFamily组合确定fontFamily属性的具体样式)
    
    List<String> fontFamilyFallback,
    
    String package,//当我们需要fontFamily的时候我们就需要指定当前的字体库的包名
  }) 
  • height属性我们这里指定了1.5,可以看出来该属性是一个比例因子,并不是一个具体的值,默认是1,而行高的计算方式是fontsize属性 * height属性则为每一行文本的高度

  • fontsize我们可以看出来和原生开发的文本大小似乎一样,可以指定具体的值,而textScaleFactor 只是指定了整体的文本的缩放比例,我们可以理解为文本具体展示的大小为textScaleFactor * fontSize的值

StrutStyle

1476218-054bba7ca49e7e80-2.png

const StrutStyle({
  String fontFamily,
  
  List<String> fontFamilyFallback,
  
  this.fontSize,
  
  this.height, //上间距?
  
  this.leading, // 绿色部分
  
  this.fontWeight,
  
  this.fontStyle,
  
  this.forceStrutHeight,
  
  this.debugLabel,
  
  String package,
  
})

TextOverflow
enum TextOverflow {
  /// 剪切溢出的文本以固定其容器。
  clip,

  /// 将溢出的文本淡入透明状态。
  fade,

  /// 使用省略号表示文本已溢出。
  ellipsis,

  /// 在其容器外呈现溢出的文本。
  visible,
}

参考:

flutter中的StrutStyle是什么