android - 使用 AppCompatDelegate 更改深色主题后无法检测到是否处于活动状态
问题描述
我正在尝试实现一个选项,让用户指定他们是否希望应用程序根据系统设置(深色或浅色,即设备是否设置为使用深色模式)加载主题,但我也提供覆盖系统设置的可能性。
第一次启动应用程序时,我可以很容易地找出这个设置是如何使用这个线程中指定的东西的
然而,在使用以下主题强制主题之后,这些似乎没用:
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
更改主题后,我无法再获取系统设置,因为它总是返回“darkmode on”,除非我再次强制它为 light 主题,但在这里它会再次返回“darkmode off”!:(
任何想法,如何获得系统设置?
提前致谢,
FF
解决方案
根据 Kakyire 的回答,我弄清楚了问题所在。
I was assuming there was only two options to be passed to AppCompatDelegate.setDefaultNightMode , MODE_NIGHT_YES and MODE_NIGHT_NO but the thing is, I needed to pass MODE_NIGHT_FOLLOW_SYSTEM when "use system" is selected.
我希望这可能对具有相同“困难”的人有所帮助
快乐编码,
FF
推荐阅读
- pandas - 从 RDD 中的 Pandas DataFrames 创建 Spark DataFrame
- html - 首先是类还是 href 属性?
- c# - 我可以使用 python 运行 C# 脚本文件(.cs)吗?
- javascript - 使用 AJAX 从文本文件中读取数据无法按预期工作
- c++ - 将句柄对象传递给 C++ 会导致引用泄漏?
- symfony - Symfony 4.2 事件 POST_SUBMIT 返回 null
- meteor - Meteor 服务器方法上引发的错误不记录原始堆栈跟踪
- android - 为什么在场景转换期间视图会被剪裁?
- javascript - 我如何从 React 中嵌套的子组件获取父组件中的数据?
- c# - 如何在 Xamarin Forms 应用程序中实现服务?