在android中,一个片段(比如说FragA)被添加到backstack而另一个片段(比如说FragB)会出现在顶部.现在回击FragA到顶部并被onCreateView()称为.现在我FragA处于一个特定的状态,然后FragB被推到它之上.
我的问题是如何恢复FragA到以前的状态?有没有办法保存状态(比如说在Bundle中),如果有,那么我应该覆盖哪种方法?
我有几个片段可以替代另一个片段.这些片段的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?还是更舒服的东西?