dev*_*ost 1 android android-fragments android-activity
我的表格分成几个片段.我用每个片段调用:
final FragmentManager fm = getSupportFragmentManager();
final FragmentTransaction ft = fm.beginTransaction();
if(fragment.equals(this.formOne) || fragment.equals(this.formTwo)) {
ft.setCustomAnimations(android.R.anim.slide_in_left,android.R.anim.slide_out_right);
}
ft.replace(R.id.fragForm, fragment);
ft.addToBackStack(null);
ft.commit();
Run Code Online (Sandbox Code Playgroud)
当我单击后退按钮时,它会跳过上一个片段并返回到活动但屏幕为空白.
例如,我有3个片段:A - B - C.
如果我去C并希望回到上一个活动,我点击后退按钮,我就在B上,我再次点击,我在A上,当我再次点击时,我有一个空白屏幕,我需要再次单击以返回上一个活动.
我不明白为什么我的活动上有这个空白屏幕.
我在开发者文档中不明白这一点:
注意:当事务用于水平导航(例如切换选项卡时)或修改内容外观(例如调整过滤器时)时,不应将事务添加到后台堆栈.有关何时适合返回导航的详细信息,请参阅导航设计指南.
如果我们不能使用它,那么解决方案是什么?
添加片段A时,请勿将其添加到Backstack中.
ft.add(R.id.fragForm, fragmentA);
ft.commit();
ft.replace(R.id.fragForm, fragmentB);
ft.addToBackStack(null);
ft.commit();
ft.replace(R.id.fragForm, fragmentC);
ft.addToBackStack(null);
ft.commit();
Run Code Online (Sandbox Code Playgroud)