一个Activity里面多个Fragment使用的情景

 我来答
黑科技1718
2022-06-26 · TA获得超过5858个赞
知道小有建树答主
回答量:433
采纳率:97%
帮助的人:81万
展开全部
最近在公司做了一个项目是一个Activity里面多个Fragment使用的情景,如下图所示:

1、在这里我的项目高概率会再次使用当前的Fragment,我使用的是使用show(),hide(),可以提高性能。

show(),hide()最终是让Fragment的ViewsetVisibility(true还是false),不会调用生命周期;

replace()的话会销毁视图,即调用onDestoryView、onCreateView等一系列生命周期;

add()和replace()不要在同一个阶级的FragmentManager里混搭使用。

注意:如果你的app有大量图片,这时更好的方式可能是replace,配合你的图片框架在Fragment视图销毁时,回收其图片所占的内存。

2、fragment之间的通信我用的是EventBus,但是当你在一个fragment跳转到一个还未初始化的fragment时,未初始化的fragment里面eventBus  的方法是不走的,接受不到信息的。你可以oncreate方法里处理一下。

3、当某个fragment要求每次页面可见时,该页面会刷新数据的时候,由于我使用的是show(),hide(),此时生命周期不在重走,在onResume或者setUserVisibleHint方法都不会调用,解决方法是在 切换fragment的时候,让你想要刷新的fragment调用frag.setUserVisibleHint(true); 这个时候Fragment类的重写的setUserVisibleHint()方法就会被调用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式