【问题标题】:Flutter TextStyle (not TextTheme) difference between apply() and copyWith()Flutter TextStyle(不是TextTheme)apply()和copyWith()之间的区别
【发布时间】:2021-10-19 18:12:50
【问题描述】:

我正在为我的应用创建主题。

我混淆了 TextStyle 的这两种方法(apply、copyWith)。 应该用什么?

TextTheme 中还有 2 个同名的方法。 我理解它们,但在 TextStyle 中无法理解。

TextStyle 中这 2 个的逻辑与 TextTheme 中的不同

谢谢。

【问题讨论】:

    标签: flutter flutter-layout flutter-theme textstyle


    【解决方案1】:

    查看文档时,如果您未指定,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没有fontSizefontWeight作为参数。

    【讨论】:

    • 我仍然不确定每一个的用例。
    • 啊好吧,我明白了。谢谢。
    【解决方案2】:

    apply() 创建文本样式的副本,替换其中的所有指定属性。

    copyWith() 创建文本样式的副本,但它只用新值替换给定值

    【讨论】:

      猜你喜欢
      • 2021-04-11
      • 2019-03-01
      • 2020-02-17
      • 2020-10-04
      • 1970-01-01
      • 2019-01-22
      • 1970-01-01
      • 2020-08-14
      • 2018-07-26
      相关资源
      最近更新 更多