我正在尝试在应用程序中实现暗模式。据我所知,最好的解决方案是使用巴黎图书馆。是否有任何简单的解决方案可在应用程序中全局设置暗模式?
我在巴黎github上发现了问题:https://github.com/airbnb/paris/issues/15,但未实现。有什么想法可以设置一次样式,而不在每个视图上使用view.style(R.style.night_style)
吗?
答案 0 :(得分:0)
您应该查看AppCompatDelegate.setDefaultNightMode
https://developer.android.com/reference/android/support/v7/app/AppCompatDelegate
您可以传入布尔值(为true或false)以更改整个应用程序的样式,也可以将其留给操作系统来为您完成
答案 1 :(得分:0)
您可以使用不同的主题,例如以下示例:
<style name="Theme.MyApp" parent="Theme.MaterialComponents.DayNight"></style>
或者,如果您想为应用定义单独的亮色和暗色主题,则可以从values目录中的Theme.MaterialComponents.Light
和values-night目录中的Theme.MaterialComponents
继承。例如:
res / values / themes.xml
<style name="Theme.MyApp" parent="Theme.MaterialComponents.Light">
<!-- ... -->
</style>
res / values-night / themes.xml
<style name="Theme.MyApp" parent="Theme.MaterialComponents">
<!-- ... -->
</style>
Theme.MaterialComponents主题是静态的深色主题,而 Theme.MaterialComponents.DayNight是一个更具动态性的主题,它将 帮助您轻松在应用的明暗之间切换 主题。如果使用DayNight主题,则可以定义一个应用主题 引用颜色资源,可以在 值夜目录(如果需要)。