我想为智能手机和平板电脑支持创建一款应用。阅读android documentation,我注意到实现这一点的最佳方法是使用片段和多个布局。
我的应用程序有两种布局:
在此布局中,您可以从红色窗格中选择一个项目,并在绿色窗格中显示新选项。现在重要的部分:您可以选择绿色窗格的项目,并将新片段添加到绿色窗格。我还将它们添加到BackStack中。使用以下代码可以正常工作。
@Override
public void OnItemSelected(String id) {
int resourceTargetID = mTwoPane? R.id.green_pane : R.id.blue_pane;
Bundle arguments = new Bundle();
arguments.putString(RedPaneFragment.ARG_ITEM_ID, id);
RedPaneFragment fragment = new RedPaneFragment();
fragment.setArguments(arguments);
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
fragmentTransaction.replace(resourceTargetID, fragment, REDPANE_FRAGMENT_TAG);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
这是智能手机(或平板电脑肖像)布局,它也适用于上述代码。唯一的区别是绿色和蓝色框架窗格堆叠在蓝色窗格中。
我的问题: 用户正在浏览列表并且具有带有1个绿色窗格和多个绿色窗格的堆栈(即,5个片段的堆栈)。现在,用户更改方向,并且布局交换为纵向设计。但它忘记了整个堆栈,并且再次从绿色窗格开始,而没有上面的红色窗格。
我不知道如何实现这一点,但我确信有办法实现这一点。