【问题标题】:Android Dark Theme - Best way to implements dark theme on applicationAndroid Dark Theme - 在应用程序上实现深色主题的最佳方式
【发布时间】:2020-03-13 01:48:18
【问题描述】:

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

在官方 android 开发者网站上:

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

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

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

【问题讨论】:

    标签: android android-dark-theme


    【解决方案1】:

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

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

    他们谈到将您的样式拆分为

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

    你所有的颜色都应该在一个位于values的colors.xml中。

    然后您将拥有以下结构:

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

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

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

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

    【讨论】:

    猜你喜欢
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    相关资源
    最近更新 更多