应用程序具有与父级匹配的框架布局容器的片段活动。用户与碎片 ui 交互,它们相互替换,将 old 放入 backstack,例如:A -> B -> C -> D -> E -> F
当用户改变手机方向时,例如,在fragment D上并想去fragment E,fragment A的视图显示,如果用户在这个fragment A中按下某些东西(通常会去fragment B),fragment F的视图显示。
屏幕方向更改后如何显示片段 E 而不是 A?
应用程序使用最新的 android 支持库,这发生在 android 4.1 模拟器和 android 2.3 手机(未测试其他 android 版本)。
所有片段都有这个 go next 片段方法:
public final void showNextFragment(final Fragment frg, final String tag) {
final FragmentTransaction tr = getFragmentManager().beginTransaction();
tr.remove(this);
tr.add(R.id.fragment_container, frg, tag);
tr.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
tr.addToBackStack(tag);
tr.commit();
}
编辑
在fragment D上旋转屏幕时,所有旋转正常并显示fragment D的视图。如果用户使用上述方法转到fragment E旋转后,显示的是fragment A的视图而不是E。如果用户不旋转手机fragment E显示一般。