我最近偶然发现一个问题。
我正在使用这样的嵌套 PreferenceScreen:
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<PreferenceScreen
android:key="pref_name"
android:title="@string/pref_title" >
</PreferenceScreen>
当我的屏幕焦点位于嵌套首选项屏幕上并且我更改屏幕方向时,嵌套首选项屏幕将关闭。
我也尝试过包括:
android:configChanges="orientation|keyboardHidden"
在 AndroidManifest.xml 中,但没有工作。
有人有解决方案吗?
编辑可能的解决方案:
我确实找到了解决方案。我以为是这一行:
android:configChanges="keyboardHidden|orientation|screenSize"
知道了。为了防止嵌套屏幕在旋转时关闭,您需要确保为父屏幕指定一个键值。就是这样。例如:
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:key="useless_key">
<PreferenceScreen
android:key="pref_name"
android:title="@string/pref_title" >
</PreferenceScreen>
</PreferenceScreen>
旁注,尽管重写 onConfigChanges 解决了问题,但您几乎不应该这样做。它完全改变了 Activity 的正常行为方式。轮换只是发生配置更改的众多原因之一。如果您的活动无法正确处理轮换,那么它也将无法处理其他条件。看看这个有洞察力的post https://stackoverflow.com/a/7990543/1243753了解更多。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)