【问题标题】:Android | Navigation Graph | Orientation Change | Fragment not retained安卓 |导航图 |方向改变 |片段未保留
【发布时间】:2021-06-10 14:39:17
【问题描述】:

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

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

第一个部分解决方案:

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

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

这似乎解决了旋转问题,但它创建了一个新问题:横向布局没有更新到应有的大小。 我怎样才能完全解决这个问题? 不管你是需要在代码中弄脏你的手还是只是在清单中添加另一个参数,我想了解什么是错误的

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

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

【问题讨论】:

    标签: android android-fragments android-orientation device-orientation


    【解决方案1】:

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

    【讨论】:

    • 我的应用程序中有一个 tabView,当我旋转手机时,应用程序保持选择的相同选项卡但丢失了当前片段。例如:TabA(入口点)、TabB、TabC。我单击选项卡 B,然后单击内部,我将转到片段 B1(来自当前选项卡 B)。所以我旋转手机,我将再次转到 Tab B 而不是片段 B1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多