片段存储和重用:使用TabView的多个子片段

你好,我被困在多个片段存储和重用。片段存储和重用:使用TabView的多个子片段

  • 我schenario

我有3 Tabs(不只是viewpager片段变化)one Activity和选项卡具有下图像所示2-4儿童片段作为等。

所以,当我打开活动。
1)Tab1加载并显示F1片段。
2)点击表2并显示F1片段。
3)点击F1中的按钮并移动到Tab2的F2片段
4)再次重复点击F2按钮并移动到Tab2的F3片段。
5)现在我点击Tab3并打开F1片段。

这5个伟大的堆栈中空

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 becase的在last timeOpened F3片段。

那么如何处理商店标签明智片段Backstrack。

而且是还需要像下面的步骤(OnBackpress)

suppouse我在片2 F1 - > F2 - > F3
回按F3后 - > F2(backpress) - > F1(backpress) - >关闭活动

回答:

您可以存储Stack of fragment in 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(tag).push(fragment); 

虽然流行片段

mStacks.get(mCurrentTab).pop(); 

对于工作演示 - Github

以上是 片段存储和重用:使用TabView的多个子片段 的全部内容, 来源链接: utcz.com/qa/265270.html

回到顶部