3

应用程序具有与父级匹配的框架布局容器的片段活动。用户与碎片 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显示一般。

4

1 回答 1

-1

一种解决方案是将当前标签或片段保留为静态变量。

否则,你想回到屏幕方向上的 A 吗?如果没有,你应该在你的清单中添加这个:

<activity android:configChanges="keyboardHidden|orientation" ...
于 2012-10-19T12:43:21.147 回答