Android Dark Theme-在应用程序上实现深色主题的最佳方法

时间:2019-11-17 15:12:36

标签: android android-dark-theme

我使用styles.xml中声明的2个不同的主题为应用程序添加了深色主题支持。

在官方android开发人员网站上:

  

为了支持深色主题,您必须设置应用的主题(通常是   在res / values / styles.xml中找到)以继承DayNight主题

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

在这一点上,我想知道哪种方法是实现深色主题的最佳方法:使用colors-night(和drawable-night)或这两种方式的组合来创建2个不同的主题?

1 个答案:

答案 0 :(得分:1)

首先,下面的youtube视频可以告诉您当前关于主题化的最佳做法。

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

他们讨论了将您的样式分为

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

然后,您所有的颜色都应放在一个{.1}}中的colors.xml中。

您将具有以下结构:

  • values / themes.xml
  • values / colors.xml
  • values / type.xml
  • values / styles.xml
  • values-night / themes.xml

在实践中,我发现很难仅用一种values包含所有颜色。我仍然创建colors.xml,因为某些颜色不一定会属于某种样式。

在此回购中实践中查看此内容。观察者发现Google本身并没有遵循只使用一个values-night/colors.xml的观点。

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