【发布时间】:2016-07-08 20:26:08
【问题描述】:
如果夜间模式开启,我想在我的活动中选择不同的布局。
我做了什么:
为night 和notnight 添加了单独的布局文件夹,如下所示:
res
-----layout-night
----------my_layout.xml
-----layout-notnight
----------my_layout.xml
现在,当我切换夜间模式并重新打开应用程序时,我希望布局会改变,但事实并非如此。
这需要额外的东西吗?
我需要添加权限才能使其正常工作吗?如果有,是哪一个?
不寻找替代方法。我的用例特别需要根据夜间模式状态选择布局。我试图弄清楚为什么当文件夹就位时没有自动选择正确的布局。
更新:缩小问题范围。布局layout-notnight 总是被选中。因此,文件夹结构工作正常。应用程序无法检测到夜间模式。 (夜间模式在设备上打开 - 尝试打开和关闭它在设备上工作但应用程序不会检测到)
所以现在的问题是:
是否需要权限才能检测夜间模式的状态?就像它需要检测 wifi 状态和网络状态一样。
【问题讨论】:
-
你不能把它们放在同一个文件夹里,只用'day'和'night'作为后缀,然后在
onCreate使用setContentView选择合适的吗? -
不,我知道我可以那样做。但这不是我的用例。主要目的是根据夜间模式的状态改变布局。
-
好吧,对不起。我意识到你正在尝试做的事情 - 类似于 android 对
mdpi、hdpi、xhdpi等所做的事情。也许你可以找出它是如何完成的并尝试模仿它? -
不需要模仿,文档说支持。因此好奇:) developer.android.com/guide/topics/resources/…
-
啊,我明白了。您能否通过使用
getNightMode()并记录值来验证夜间模式是否已激活?
标签: android android-studio android-configchanges android-night-mode