0

我使用在styles.xml.

在官方 android 开发者网站上:

为了支持 Dark 主题,您必须将应用程序的主题(通常在 res/values/styles.xml 中找到)设置为从 DayNight 主题继承

这就是我所做的。我还创建colors-night.xml了避免修改无法styles.xml通过编码修改的颜色,这也有效:当从设备系统激活暗模式时,颜色会自动更改。

在这一点上,我想知道哪种是实现深色主题的最佳方式:创建 2 个不同的主题,使用颜色之夜(和可绘制之夜)或这两种方式的组合?

4

1 回答 1

1

首先是下面的 youtube 视频,它几乎可以告诉您当前关于主题的最佳实践是什么。

https://www.youtube.com/watch?v=Owkf8DhAOSo

他们谈到将你的风格分成

  • themes.xml-> 主题相关样式
  • styles.xml-> 组件相关样式
  • type.xml-> 文本外观样式

然后,您所有的颜色都应该在一个 colors.xml 中,它位于values.

然后,您将具有以下结构:

  • 值/主题.xml
  • 值/colors.xml
  • 值/type.xml
  • 值/样式.xml
  • 值夜/themes.xml

在实践中,我发现仍然很难将所有颜色都包含在一个colors.xml. 我仍然在创作values-night/colors.xml,因为有些颜色不一定属于一种风格。

在这个 repo 中看到这个实践。观察者谷歌自己并没有遵循他们的观点,只使用一个colors.xml.

https://github.com/material-components/material-components-android/tree/master/material-theme-builder

于 2020-01-20T02:25:05.540 回答