【发布时间】:2021-10-19 18:12:50
【问题描述】:
我正在为我的应用创建主题。
我混淆了 TextStyle 的这两种方法(apply、copyWith)。 应该用什么?
TextTheme 中还有 2 个同名的方法。 我理解它们,但在 TextStyle 中无法理解。
TextStyle 中这 2 个的逻辑与 TextTheme 中的不同
谢谢。
【问题讨论】:
标签: flutter flutter-layout flutter-theme textstyle
我正在为我的应用创建主题。
我混淆了 TextStyle 的这两种方法(apply、copyWith)。 应该用什么?
TextTheme 中还有 2 个同名的方法。 我理解它们,但在 TextStyle 中无法理解。
TextStyle 中这 2 个的逻辑与 TextTheme 中的不同
谢谢。
【问题讨论】:
标签: flutter flutter-layout flutter-theme textstyle
查看文档时,如果您未指定,apply 会为某些参数使用默认值。
TextStyle 应用( {颜色?颜色, 颜色?背景颜色, 文字装饰?装饰, 颜色?装饰颜色, 文字装饰风格?装修风格, 双装饰ThicknessFactor = 1.0, 双装饰ThicknessDelta = 0.0, 细绳?字体系列, 列表? fontFamilyFallback, 双字体大小因子 = 1.0, 双 fontSizeDelta = 0.0, int fontWeightDelta = 0, 字体样式?字体样式, 双字母SpacingFactor = 1.0, 双字母SpacingDelta = 0.0, 双字间距因子 = 1.0, 双字SpacingDelta = 0.0, 双倍高度因子 = 1.0, 双倍高度Delta = 0.0, 文本基线?文本基线, TextLeadingDistribution?领先的分销, 语言环境?语言环境, 列表?阴影, 列表?字体特征} )
https://api.flutter.dev/flutter/painting/TextStyle/apply.html
copywith 不使用默认值并使用(复制)已在原始 TextStyle 对象中定义的值。
TextStyle copyWith( {布尔?继承, 颜色?颜色, 颜色?背景颜色, 细绳?字体系列, 列表? fontFamilyFallback, 双倍的?字体大小, 字体粗细?字体重量, 字体样式?字体样式, 双倍的?字母间距, 双倍的?字间距, 文本基线?文本基线, 双倍的?高度, TextLeadingDistribution?领先的分销, 语言环境?语言环境, 画?前景, 画?背景, 列表?阴影, 列表?字体特征, 文字装饰?装饰, 颜色?装饰颜色, 文字装饰风格?装修风格, 双倍的?装饰厚度, 细绳?调试标签} )
https://api.flutter.dev/flutter/painting/TextStyle/copyWith.html
编辑:
看起来他们也有不同的参数,例如apply没有fontSize和fontWeight作为参数。
【讨论】:
apply() 创建文本样式的副本,替换其中的所有指定属性。
copyWith() 创建文本样式的副本,但它只用新值替换给定值
【讨论】: