我想在我的应用程序中实现 android 10 深色主题,我有以下情况:
SYSTEM_DEFAULT, NIGHT_MODE, LIGHT_MODE
问题是当我从应用程序内部将主题从夜间或浅色更改为 system_default 时,它无法理解系统是处于浅色模式还是深色模式。所以主题不会更新。
我试过谷歌的黑暗主题 https://developer.android.com/guide/topics/ui/look-and-feel/darktheme
并且实施配置对我仍然没有好处,因为如果用户在系统默认设置为天时将日期更改为系统默认设置,我不想重新创建我的活动。
无论如何我可以处理这个吗?
when(id) {
NIGHT - > theme = Theme.NIGHT_MODE
DAY - > theme = Theme.LIGHT_MODE
SYSTEM_DEFAULT - > theme = Theme.SYSTEM_DEFAULT
}
context ? .clearCachedDrawables()
activity ? .recreate()
}
编辑:
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)
}