片段存储和重用:使用TabView的多个子片段
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了片段存储和重用:使用TabView的多个子片段相关的知识,希望对你有一定的参考价值。
你好我被困在多个片段存储和重用。
- 我的情景
我在3 Tabs
中有one Activity
(没有viewpager只是片段更改)和有2-4个子片段的标签,如下图所示。
所以,当我打开Activity时。 1)Tab1加载并显示F1片段。 2)点击Tab2并显示F1片段。 3)点击F1中的按钮并移动到Tab2的F2片段 4)再次重复点击F2处的按钮并移动到Tab2的F3片段。 5)现在我点击Tab3并打开F1片段。
这5个用backstack null工作得很好
fragmentTransaction.addToBackStack(null);
但是知道,
6)当我点击Tab 2它将始终显示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片段因为在qazxsw poi这个标签2我是qazxsw poi片段。
那么如何处理Store tab明智的Fragment Backstrack。
是的还需要像下面的步骤(OnBackpressed)
假设我在选项卡2 F1 - > F2 - > F3中 后按F3 - > F2(后退) - > F1(后退) - >关闭活动
last time
答案
您可以存储Opened F3
并在更改选项卡时检索。
而推片段
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);
以上是关于片段存储和重用:使用TabView的多个子片段的主要内容,如果未能解决你的问题,请参考以下文章