当前位置: 首页 > 知识库问答 >
问题:

Android:黑暗模式如何切换主题?

韩鸿波
2023-03-14

从Android10开始,你可以在黑暗模式和默认灯光模式之间切换。我还没有做任何更深入的研究,因为这是一个新的话题。暗模式的颜色切换是由操作系统自动的,还是有任何方法告诉我的应用程序切换不同的应用程序主题,如果暗模式是打开的?此外,黑暗模式也可能出现在一些Android 9设备上。

因为我使用自定义参数创建了自定义深色主题,并在资源中为每种颜色设置了深色(在attrs.xml中使用自定义属性,并在styles.xml的主题中为它们应用特定的颜色资源)。同样,它是为我的应用程序的不同配色方案工作(蓝色,红色,绿色,例如)。这样,我就可以知道哪种颜色将用于我的应用程序中的不同视图,而不是系统。

我唯一需要的是检测系统中暗模式是否开/关。我可以强制用户打开黑暗模式在应用程序设置(自定义设置),但主题可以被系统黑暗模式影响(打开手机设置)。

共有1个答案

沈华晖
2023-03-14

来自官方文件

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

<style name="AppTheme" parent="Theme.AppCompat.DayNight">

您还可以使用MaterialComponents的暗主题:

<style name="AppTheme" parent="Theme.MaterialComponents.DayNight">
switch (getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK) {
    case Configuration.UI_MODE_NIGHT_YES:
        …
        break;
    case Configuration.UI_MODE_NIGHT_NO:
        …
        break; 
}
 类似资料: