问题描述
我想在主屏幕上向我的应用程序添加一个按钮,以便当您单击此按钮时,将显示暗模式。暗模式已经设置好,一切都在运行。但是,仅当此应用程序的用户也处于其手机的暗模式下时。但我希望每个人都有机会自己在应用程序中切换到暗模式。希望您能理解我的意思,我的英语不好,很抱歉
解决方法
使用API AppCompatDelegate.setDefaultNightMode()
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
您会发现Google的Chris Banes的这篇文章很有用:
https://medium.com/androiddevelopers/appcompat-v23-2-daynight-d10f90c83e94
您应该考虑按照上述文章中的“设置”按钮添加应用偏好设置
,据我了解,您已经具有DarkMode样式和Default样式。 您可以在MainActivity上为其添加一个Switch,并将darkMode状态保存在SharedPreferences类中。 设定条件:
if (Switch is enabled) {
setTheme(R.style.darkMode)
}else {
setTheme(R.style.defaultMode)
}
有关更多详细信息,您可以观看youtube上有关如何执行此操作的一些教程。 https://www.youtube.com/watch?v=xqY7Yu5C8pg
,正如您已经定义的那样,DarkMode可能处于可绘制状态。因此,您可以通过以下代码切换背景。
if (true) {
button.setBackgroundResource(R.drawable.darkmode);
}else {
button.setBackgroundResource(R.drawable.defaultmode);
}