flutter apply 或 copyWith 方法

Abu*_*war 11 flutter

我正在尝试在 上应用蓝色Theme.of(context).textTheme.headline6,可以通过两种方式完成

Text(
  "Hello",
  style: Theme.of(context)
      .textTheme
      .headline6!
      .copyWith(color: Colors.blue),
),
Run Code Online (Sandbox Code Playgroud)

或者

Text(
  "Hello",
  style: Theme.of(context)
      .textTheme
      .headline6!
      .apply(color: Colors.blue),
),
Run Code Online (Sandbox Code Playgroud)

您更喜欢哪一种copyWithapply方法?

在图像上预览

Dav*_*der 5

主要区别在于apply()提供了几个参数来缩放源的参数TextStyle

例如,copyWith(fontSize: 14)允许您显式设置字体大小,同时apply(fontSizeFactor: 1.6)允许您按自定义因子缩放源的字体大小(请注意,显式参数不存在于 中)。fontSizeapply()


Ham*_*med 0

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

copyWith() 创建文本样式的副本,但将给定字段替换为新值。

来源 Flutter:将样式应用为文本小部件中的主题