首页 > 解决方案 > PreferenceFragment 在活动重新创建时消失

问题描述

因此,我在 Fragment 的 FrameLayout 内有一个 PreferenceFragment,它位于 Activity 内的另一个片段内。
我知道这很难理解,所以这是我的层次结构:
MainActivity --> ProfileFragment --> FrameLayout --> MainSettingsPreferenceFragment --> (OnPreferenceClick)ThemesPreferenceFragment

现在,每当我在ThemesPreferenceFragment它重新创建活动时更改 DefaultNightMode 时,一切都可以正常加载,除了ThemesPreferenceFragment. 它只是消失了。当我按下后退按钮时,它会像往常一样从后台弹出,显示MainSettingsPreferenceFragment. 意味着一切正常,没有错误和异常。只是它没有在活动重新创建时显示 PreferenceFragment。

简介片段:

if (savedInstanceState == null)
getParentFragmentManager().beginTransaction().replace(R.id.mpf_frame_fl, new MainSettingsPreference()).commit();

我的 MainSettingsPreferenceFragment XML:

<Preference
        app:fragment="com.infinitystudios.quinovi.Settings.AppearanceFragment"
        android:icon="@drawable/appearance"
        android:title="@string/appearance" />

主要活动:

@Override
    public void onBackPressed() {
        if (getSupportFragmentManager().getBackStackEntryCount() > 0) getSupportFragmentManager().popBackStack();
        else super.onBackPressed();
    }

现在有人可以解释为什么它会显示这种行为以及我该如何解决它?

标签: javaandroidandroid-jetpack

解决方案


推荐阅读