如何在方向更改后复制片段堆栈?

时间:2017-10-10 12:52:03

标签: android android-layout android-fragments

我想为智能手机和平板电脑支持创建一款应用。阅读android documentation,我注意到实现这一点的最佳方法是使用片段和多个布局。

我的应用程序有两种布局:

Tablet Landscape Layout

在此布局中,您可以从红色窗格中选择一个项目,并在绿色窗格中显示新选项。现在重要的部分:您可以选择绿色窗格的项目,并将新片段添加到绿色窗格。我还将它们添加到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();
}

Smartphone / Tablet Portait Layout

这是智能手机(或平板电脑肖像)布局,它也适用于上述代码。唯一的区别是绿色和蓝色框架窗格堆叠在蓝色窗格中。

我的问题: 用户正在浏览列表并且具有带有1个绿色窗格和多个绿色窗格的堆栈(即,5个片段的堆栈)。现在,用户更改方向,并且布局交换为纵向设计。但它忘记了整个堆栈,并且再次从绿色窗格开始,而没有上面的红色窗格。

我不知道如何实现这一点,但我确信有办法实现这一点。

0 个答案:

没有答案