动态删除片段并保存其UI转换

mid*_*ght 6 android android-fragments

我有几个片段可以替代另一个片段.这些片段的UI发生了变化,我需要保持它的新状态.因此代码看起来非常简单:

    FragmentManager fragmentManager = getSupportFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager
            .beginTransaction();

    if (mStepTwo == null) {
        mStepTwo = new QuizStepTwo();
        mStepTwo.setListener(mStepTwoListener);
    } else {
        fragmentTransaction.remove(mStepTwo);
    }

    fragmentTransaction.replace(R.id.step_holder, mStepTwo);
    fragmentTransaction.addToBackStack("second_step");

    fragmentTransaction.commit();
Run Code Online (Sandbox Code Playgroud)

然而,当我用第一步替换第二步时,例如按下后退按钮, - 它的'UI状态回滚到初始状态.

我如何保持国家?OnSaveInstanceState?还是更舒服的东西?

类似问题:Android Fragment视图状态在标签主机内,如何恢复Android片段视图状态

Nit*_*thi 1

如果状态取决于您的应用程序数据,最好将它们保存在 SharedPreferences 文件中并使用它来构建 UI 元素。