Android 片段存储和重用:使用TabView的多个子片段
你好,我被多重碎片存储和重用所困扰Android 片段存储和重用:使用TabView的多个子片段,android,android-fragments,tabs,fragment,Android,Android Fragments,Tabs,Fragment,你好,我被多重碎片存储和重用所困扰 我的schenario 我在一个活动中有3个选项卡(没有viewpager只是片段更改),选项卡有2-4个子片段,如下图所示 所以,当我打开活动时。 1) Tab1加载并显示F1片段。 2) 点击选项卡2并显示F1片段。 3) 点击F1中的按钮并移动到选项卡2的F2片段 4) 再次点击F2处的按钮,并移动到Tab2的F3片段。 5) 现在我点击Tab3并打开F1片段 这5个选项在backbackbacknull fragmentTransaction.ad
- 我的schenario
一个活动中有3个选项卡
(没有viewpager只是片段更改),选项卡有2-4个子片段,如下图所示
所以,当我打开活动时。
1) Tab1加载并显示F1片段。
2) 点击选项卡2并显示F1片段。
3) 点击F1中的按钮并移动到选项卡2的F2片段
4) 再次点击F2处的按钮,并移动到Tab2的F3片段。
5) 现在我点击Tab3并打开F1片段
这5个选项在backbackbacknull
fragmentTransaction.addToBackStack(null);
但是你知道,
6) 当我点击Tab2时,它将始终显示F1片段。因为我在下面的片段中管理活动
switch (selected) {
case 0:
showFragment(TAB1.newInstance("", ""), TAG_HOME);
break;
case 1:
showFragment(TAB2.newInstance("", ""), TAG_FAV);
break;
case 2:
showFragment(TAB3.newInstance("", ""), TAG_ADD);
break;
}
- 我需要什么。
6) 我需要,假设我点击Tab2它显示F3片段,因为上次在这个Tab2中我是打开的F3
片段
那么,如何处理存储选项卡式片段Backstrack
是的,也需要像下面的步骤一样(上下压)
支持我在表2 F1->F2->F3中
后按F3->F2(后按)->F1(后按)->关闭活动
您可以将片段堆栈存储在Hashmap
中,并在更改选项卡时进行检索
HashMap<String, Stack<Fragment>> mStacks = new HashMap<String, Stack<Fragment>>();
mStacks.put(AppConstants.TAB_A, new Stack<Fragment>());
mStacks.put(AppConstants.TAB_B, new Stack<Fragment>());
mStacks.put(AppConstants.TAB_C, new Stack<Fragment>());
而流行音乐片段
mStacks.get(mCurrentTab).pop();
工作演示-
mStacks.get(mCurrentTab).pop();