[英]Do not remove fragment from backstack
I want to save fragments
in manager, even if I click on back. 我想将fragments
保存在管理器中,即使单击返回也是如此。 This is code: 这是代码:
FragmentTransaction fragmentTransaction = getSupportFragmentManager()
.beginTransaction();
fragmentTransaction.setCustomAnimations(R.anim.slide_in_right_frag, R.anim.slide_out_left_frag, R.anim.slide_in_left, R.anim.slide_out_right);
FragmentManager manager = getSupportFragmentManager();
manager.findFragmentByTag(title);
if (manager.findFragmentByTag(title) == null) {
fragmentTransaction.replace(R.id.fragment_container, fragment, title);
if (addToBackStack) {
fragmentTransaction.addToBackStack(null);
}
fragmentTransaction.commit();
} else {
fragmentTransaction.show(manager.findFragmentByTag(title)).commit();
}
now if I click onBack
my fragment
is removed from back stack and manager. 现在,如果我单击onBack
则会从后台堆栈和管理器中删除我的fragment
。 I want to even if I click back save this fragment so If I click next I want to back to this fragment. 即使单击返回,我也要保存此片段,因此,如果单击下一步,我想返回此片段。 This is my way: 这是我的方式:
frag1 -> clickOnNext -> frag2 -> put some data in edittexts ->
clickOnBack -> frag1 -> clickOnNext -> frag2(frag has data from first time).
Now always get new Instance of fragment2
. 现在,始终获取fragment2
新实例。
Use fragmentTransaction.add(R.id.fragment_container, fragment, title);
使用fragmentTransaction.add(R.id.fragment_container, fragment, title);
instead of fragmentTransaction.replace(R.id.fragment_container, fragment, title);
而不是fragmentTransaction.replace(R.id.fragment_container, fragment, title);
And handle showing/hiding of fragments in your activity onBackPressed
event. 并处理活动onBackPressed
事件中片段的显示/隐藏。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.