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

Android Q中黑暗主题配置的变化

鄢禄
2023-03-14
when(id) {
  NIGHT - > theme = Theme.NIGHT_MODE
  DAY - > theme = Theme.LIGHT_MODE
  SYSTEM_DEFAULT - > theme = Theme.SYSTEM_DEFAULT
}

context ? .clearCachedDrawables()
activity ? .recreate()
}

编辑:

js lang-js prettyprint-override">when (themeStatus) {
            Theme.LIGHT_MODE ->
                AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
            Theme.NIGHT_MODE ->
                AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
            Theme.SYSTEM_DEFAULT ->
               AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM)
        }

共有1个答案

景德海
2023-03-14

您不需要在活动中设置主题并重新创建它。如果你设置了正确的应用程序主题,它会自动完成。

要在应用程序中使用黑暗,您应该将白天的主题扩展为应用程序的主题。

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

<style name="AppTheme" parent="Theme.MaterialComponents.DayNight">
<color name="myColor">#000000</color>
<color name="myColor">#FFFFFF</color>

编辑

您可以在应用程序中在暗/亮模式之间切换,方法是调用

AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM)

AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
 类似资料:
  • 我们的应用程序依赖于让我们从和中拾取明暗主题颜色 但是每次我们尝试使用时,它都会从重置UiMode开始,我们的应用程序会混淆为我们的主题选择哪些颜色值 有些人在这里和这里详细讨论了这个问题 有人遇到类似的问题吗?

  • 如何更改MySQL Workbench设置,使其使用深色主题?

  • 我从eclipse.org下载了。并且我更改了上的主题。但这不是我想要的。 我如何做完全黑暗?

  • 我在Windows8.1上为C/C++开发人员提供了Eclipse IDE。我从市场上安装了Darkest Dark主题,但它不起作用。在重新启动时,Eclipse以我以前的主题开始,而Darkest Dark甚至不会出现在Preferences窗口中。然而,当我再次打开Marketplace并搜索它时,它显示为已安装。我找了找,但没有找到这个确切问题的答案。有人帮忙吗?

  • 我会尽量详细解释“请帮忙。我打开了一个新项目。在新项目中,“主题”部分打开了两次“一亮一暗”。我在应用程序中添加了黑色文字。文字看起来是白色的,因为我的手机是黑色主题。这很好,但令人费解。我只有一种颜色。xml文件(不适用于夜间版本)文本是如何变为白色的?这很好,但我添加的图标(矢量“xml”)并将其设置为灰色,但现在它无法理解。图标的颜色在黑暗中从灰色变为黑色。我想让他换成白人。我还打开了颜色。