我正在研究基于单一 Activity 的原则。但是当再次打开同一个 fragment 时,我面临一个问题,因为它再次添加了 fragment backstack 条目。因此 backstack 包含同一 fragment 的多个 backstack 条目。这会在后退导航上产生问题。
示例:- A|B|C|D|A|C|A
所以当我按下返回键时,同一个 fragment 会显示多次。有什么方法可以重用 backstack 条目中的现有 fragment 。
我正在像这样管理我的后台:-
fragmentManager.beginTransaction().setCustomAnimations(R.anim.fragment_enter,
R.anim.fragment_exit, R.anim.pop_enter, R.anim.pop_exit).
add(R.id.frameLayout, fragment).addToBackStack(backStateName).commit();
任何形式的帮助将不胜感激。
最佳答案
private void createOrResumeFragment(String fragmentTag){
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction ft = manager.beginTransaction();
boolean fragmentPopped = manager.popBackStackImmediate (fragmentTag, 0);
Fragment fragment = manager.findFragmentByTag(fragmentTag);
if(!fragmentPopped && fragment == null){
//Create an new instance if it is null and add it to stack
fragment = new MyFragment();
ft.addToBackStack(fragmentTag);
}
ft.replace(R.id.framelayout, fragment);
ft.commit();
}
关于android - 单实例 fragment 回栈管理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40168293/