Flutter中的材料设计主题

时间:2019-10-01 20:15:24

标签: flutter material-design theming

我在哪里设置https://material.io/resources/color/中的辅助颜色?

根据accentColor类,我必须设置theme_data.dart,我知道该怎么做:“ [accentColor],有时也称为辅助颜色”。

分析colorScheme.secondary后,您还可以设置ColorScheme。但是,将属性设置为ColorScheme意味着您必须设置所有属性。您甚至应该设置ThemeData并覆盖它吗?另外,我在哪里设置次浅色和次暗色?我感到有点迷茫,因为自定义LogManager.ReconfigExistingLoggers();的唯一方法是阅读整个材料主题代码。或至少大部分。有深入的文档吗?

2 个答案:

答案 0 :(得分:1)

也许您想要copyWith方法,该方法使您可以覆盖父主题数据的少或多。

答案 1 :(得分:1)

  

我在哪里设置https://material.io/resources/color/中的辅助颜色?

通常,在ThemeData中可以做到这一点,可以将其作为theme参数传递给MaterialApp

  

但是将属性设置为ColorScheme意味着您必须设置所有属性

不一定-除非我误解了这个问题。 ColorScheme有一个方法copyWith(),它使用了一堆命名参数。因此,您可以像这样重复使用现有的ColorScheme

final newScehme = someColorScheme.copyWith(background: ...)

当然,诀窍是检索该方案。您可以通过访问ThemeData's colorScheme属性来获取它:

Theme.of(context).colorScheme
  

您甚至应该设置ColorScheme并覆盖它吗?

尽管我没有仔细阅读所有文档,但我在文档中没有发现任何建议可以解决此问题。我想这取决于您的用例。

  

我还要在哪里设置次浅色和次暗色?

我对材料设计指南和复杂性不是很精通,但是也许您追逐secondarysecondaryVariant

  

有没有深入的文档?

取决于您的深入定义。以下链接提供了与主题和颜色相关的各种属性的合理概述:

还请注意,MaterialApp上有一个darkTheme属性,您可以在系统要求时使用它指定深色主题。

通常,我发现ThemeData有很多自定义选项,尤其是当您将其与许多主题相关的类中的copyWith结合使用时。 ThemeData是否与“材料设计指南”紧密匹配,我无法自信地说。但是,文档确实很好地解释了属性,因此将它们与实际指南进行比较应该使人们对什么有所了解。