首页 > 解决方案 > 安卓 | 导航图 | 方向改变 | 片段未保留

问题描述

一般: 我的应用程序由活动和几个片段组成。我正在使用导航图来浏览各种片段。我有能力旋转设备,因此有不同的布局。

问题: 我知道从片段 AI 到片段 B 并且我旋转手机,我回到片段 A

第一个部分解决方案:

从文档中,我采取了可能是解决方案的方法,但结果证明这只是部分解决方案。事实上,我读到为了防止旋转过程中出现问题,我可以使用以下参数:

        android:configChanges="orientation|screenSize|screenLayout|keyboardHidden"

这似乎解决了旋转问题,但它创建了一个新问题:横向布局没有更新到它们应该具有的大小。我怎样才能完全解决这个问题?如果您需要在代码中弄脏自己的手或只是在清单中添加另一个参数都没关系,我想了解什么是错的

示例:底部导航 -> TabA(入口点);选项卡 B、选项卡 C。

我单击选项卡 B -> 然后单击内部,我将转到片段 B1(来自正确的选项卡 B)。所以我旋转手机,我将再次转到选项卡 B 而不是片段 B1

标签: androidandroid-fragmentsandroid-orientationdevice-orientation

解决方案


当手机旋转时,活动被重新创建,所以我想你的活动是从入口点片段重新开始的。您可以使用 ViewModel 来持久化实际的片段引用,并在持有片段的 Activity 的 OnResume 方法上再次对其进行膨胀。


推荐阅读