android - 应用程序中未检测到夜间模式状态 - 即使打开时也是如此

标签 android android-studio android-configchanges android-night-mode

如果夜间模式开启,我想在我的 Activity 中选择不同的布局。

我做了什么:

nightnotnight 添加了单独的布局文件夹,如下所示:

res
-----layout-night
----------my_layout.xml

-----layout-notnight
----------my_layout.xml

现在,当我切换夜间模式并重新打开应用程序时,我希望布局会发生变化,但事实并非如此。

是否需要额外的东西才能工作?

是否需要添加权限才能使其正常工作?如果有,是哪一个?

不寻找替代方法。我的用例特别需要根据夜间模式状态选择布局。我试图弄清楚为什么当文件夹就位时没有自动选择正确的布局。


更新:缩小问题范围。总是选择布局 layout-notnight。因此,文件夹结构工作正常。应用程序无法检测到夜间模式。 (夜间模式在设备上打开 - 尝试打开和关闭它在设备上有效但应用程序不会检测到)

那么现在的问题是:

是否需要权限才能检测到夜间模式的状态?就像它需要检测 wifi 状态和网络状态。

最佳答案

您可以尝试使用 UiModeManager。它提供方法 setNightMode()getNightMode()。也许它不能解决问题,但这是解决问题的方法。

关于android - 应用程序中未检测到夜间模式状态 - 即使打开时也是如此,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38274876/

相关文章:

android - 依赖性搞砸了 Flutter 中的 Android 应用程序构建

android-studio - Android Studio - 项目中的所有文件名都是红色的,但没有错误

Android 布局方向未在运行时语言更改时更新

Android Cardview 元素相互堆叠

android - Intent ACTION_OPEN_DOCUMENT_TREE 似乎没有返回驱动器的真实路径

java - 在 onCreate 中使用 webview.loadUrl 时应用程序崩溃

android - 图库滚动图像在移动屏幕的 3/4 后跳转

Android 单元测试不适用于 Android 库项目

android - onCreate() 在使用 ViewPager 的 Fragment 中的配置更改时调用了两次

android - fragment A 的 findFragmentByTag 为 null,如果 fragment B 上有 setRetain(true)