我的主要活动的布局文件包含一个我正在加载的文件 片段使用NavigationDrawer进行动态分割。 要实现这一点,我使用FragmentPagerAdapter:
@Override
public Fragment getItem(int index) {
switch (index) {
case 0:
return new FragmentA();
case 1:
return new FragmentB();
case 2:
return new FragmentC();
}
return null;
}
在FragmentA中有一个ViewPager +另一个FragmentPagerAdapter,所以你可以滑动 三个其他片段之间。 (Frament1,Fragment2,Fragment3)。 它的工作原理如下:
(由于缺乏声誉,我无法插入图片......)
http://62.165.232.86:1991/images/fragments.png
当我在Frament1,Fragment2和Fragment3之间切换时,它工作正常。 (我将ViewPager的offScreenPageLimit设置得足够高。)
当我导航到FragmentB或FragmentC然后FragmentA被破坏并且我不知道如何保存它的实例并恢复它时出现问题,因为我没有 对Fragment1的引用。
编辑1: 我像这样在FragmentA和FragmentB之间交换:
FragmentTransaction tx = getSupportFragmentManager().beginTransaction();
tx.replace(R.id.main, mAdapter.getItem(0));
tx.commit();
我有点困惑。我应该保存Fragment1,2,3和Fragment A的实例,
当我导航回Fragment A但我不知道怎么回事,因为我没有引用子片段。
你能帮助我吗?
感谢您的回答, Daneel Olivaw
答案 0 :(得分:0)
想法(我不确定100%):
Fragment fragment = getFragmentManager().findFragmentByTag("yourtag");
if (fragment==null) {
fragment = mAdapter.getItem(0)
}
FragmentTransaction tx = getSupportFragmentManager().beginTransaction();
tx.add(R.id.main, fragment, "yourtag");
tx.commit();