您好我被困在多个片段存储和重用。
我在<div
class="title"
:style="{
fontSize: (object.text.length > 8 ? '0.7' : '1') + 'em !important'
}">
{{object.text}}
</div>
中有3 Tabs
(没有viewpager只是片段更改),而且有2-4个子片段的标签如下图所示。
所以,当我打开活动时。
1) Tab1 加载并显示 F1 片段
2)点击 Tab2 并显示 F1 片段
3)点击F1中的按钮并移动到Tab2的F2片段
4)再次重复点击F2处的按钮并移动到Tab2的F3片段
5)现在我点击Tab3并打开F1片段。
这5个与backstack null
一起工作得很好one Activity
但知道,
6)当我点击Tab2时它将始终显示F1片段。因为我管理下面的片段活动。
fragmentTransaction.addToBackStack(null);
6)我需要,假设我点击 Tab2 它显示 F3 片段,因为此标签中的 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;
}
我是last time
片段。
那么如何处理Store tab明智的Fragment Backstrack。
是的还需要像下面的步骤(OnBackpress)
支持我在标签2 F1 - &gt; F2 - &gt; F3
之后按F3 - &gt; F2(背压) - &gt; F1(背压) - &gt;关闭活动
答案 0 :(得分:1)
您可以存储 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(tag).push(fragment);
推送片段
mStacks.get(mCurrentTab).pop();
虽然是pop片段
play-services:11.6.2 and firebase:11.6.1
对于工作演示 - Github