如何管理fragment回退栈

 我来答
鸢梨的小布丁
推荐于2016-02-01 · TA获得超过2.8万个赞
知道大有可为答主
回答量:2.3万
采纳率:21%
帮助的人:2243万
展开全部
遇到的问题:
通过FragmentTransaction的replace方法会导致,每次都会重新调用fragment的onCreateView()方法,浪费时间。

解决方法:
通过FragmentTransaction的hide和show方法来实现fragment的显示和隐藏,这样就不会重复调用onCreateView函数了。

FragmentTransactioin 可以用来添加,删除fragment,也可以控制fragment的显示和隐藏。

这是如果调用addToBackStack(null),此时的状态就会被保存在回退栈,按返回键的时候就会显示出栈顶的

getSupportFragmentManager().popBackStack() 这个方法可以让栈顶的fragment出栈。

只有在程序运行时被动态添加的fragment才会被添加到后退栈。
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_container, newFragment,"testa")
.addToBackStack(null)
.commit();

程序跑起来之后,通过这个方法后退栈数才会加一,如果在代码中一口气添加多个,再运行程序,getSupportFragmentManager().getBackStackEntryCount()得到的后退栈数值为零。
力控科技
2024-12-19 广告
第一步:看XPE是什么版,如果内核是英文版,需要安装一个MUI包,即语言包。第二步:进入控制面板-区域和语言选项,如下图,在区域选项中,选择“中文(中国)”,位置也为“中国”,在高级选项中,代码页转换表中,将所有的“简体中文”都选择上。... 点击进入详情页
本回答由力控科技提供
feng900620
2015-02-08 · 知道合伙人数码行家
feng900620
知道合伙人数码行家
采纳数:3933 获赞数:30190
从事电脑软硬件维修诊断5年 IOS/Android设备技术顾问

向TA提问 私信TA
展开全部
TabActivity+Fragment 或者ActivityGroup+Fragment
TabActivity或ActivityGroup的每一个子Activity可是都应该有一个独立的后退栈的哦
然后每一个子Activity可以在管理一系列的Fragment
比如楼主你说的ABC三个碎片就可以放到第一个子Activity的后退栈保存
而XYZ可以放到第二个子Activity
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pyl_EF
2015-10-25 · TA获得超过1.4万个赞
知道小有建树答主
回答量:2719
采纳率:96%
帮助的人:155万
展开全部
TabActivity或ActivityGroup的每一个子Activity可是都应该有一个独立的后退栈的哦,然后每一个子Activity可以在管理一系列的Fragment。比如楼主说的ABC三个碎片就可以放到第一个子Activity的后退栈保存。遇到了同样的问题,也可以在中间部分的Fragment中把最后的Fragment结束掉。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式