viewpager中fragment的生命周期管理
来源:互联网 发布:文件夹加密软件免费 编辑:程序博客网 时间:2024/06/04 07:21
最近在一个项目中,使用到了多个Fragment加载到ViewPager,每个Fragment是通过同一个Adapter加载数据,而根据代码的设计,每一个Fragment中的数据都会通过Adapter中Right和Left类发送;
@Overridepublic void right(int current, int id, int position) {//向右点击按钮Log.i("md", "current=="+current+" position==="+position+" id"+pager);sendGmcm(current,position,id);//向下发送数据}
,着势必要对Fragment中的数据进行筛选发送,于是首先想到的是根据每个Fragment的生命周期来给Adapter一个用于判断的标志,通过打印得得知,当用viewpager加载fragment时 会跑完当前 上一个已及下一个item(fragment)的生命周期 而不是在加载的时候在去跑
而在fragment上跳转activity时 会调用当前上一个已及下一个item(fragment)onPause 返回时调用onStop 然后在把当前上一个已及下一个item(fragment)的生命周期 在跑一次
总结:
viewpager显示fragment的时候不会仅仅显示展现的那个fragment,而是将前一个,后一个,和正在显示的fragment的生命周期都跑一遍。
这就尴尬,只要我一启动,所有的Fragfment的生命周期都会走一遍,于是找到另一个方法:
判断当前fragment是否显示在屏幕上 在setUserVisibleHint这个方法上做处理,
解释:通过阅读ViewPager和PageAdapter相关的代码,切换Fragment实际上就是通过设置setUserVisibleHint和setMenuVisibility来实现的,调用这个方法时并不会释放掉Fragment(即不会执行onDestoryView)。
通过此方法,还可以去除不显示的fragment里面的TimeTask线程,以提升程序的运行速度
- viewpager中fragment的生命周期管理
- viewpager中fragment的生命周期管理
- viewpager中fragment的生命周期管理
- ViewPager +Fragment 中Fragment被预加载问题(ViewPager中Fragment的生命周期管理)
- viewpager 中fragment 的生命周期
- ViewPager中Fragment的生命周期
- viewpager中fragment生命周期
- viewpager 中fragment 生命周期问题
- ViewPager里Fragment的生命周期
- ViewPager中的Fragment的生命周期
- 关于ViewPager中显示fragment的生命周期调用问题
- Viewpager中Fragment的生命周期以及方法流程详解
- Fragment的懒加载(解决ViewPager中Fragment生命周期错乱的问题)
- 关于Viewpager中的Fragment的生命周期
- Viewpager和FragmentTransaction、Fragment生命周期的关系
- 关于ViewPager+Fragment中Fragment不销毁/生命周期
- ViewPager嵌套Fragment时Fragment的生命周期问题
- viewpager fragment中fragment的状态保存
- Android高级工程师需要掌握的技术
- hbase数据库介绍,HBASE的特点,表结构逻辑视图,Row Key,列族,时间戳,Cell
- 量化投资传送门
- 机器学习——神经网络、深度学习 知识点总结 及 面试题汇总
- http://jingyan.baidu.com/article/f96699bb8b38e0894e3c1bef.html
- viewpager中fragment的生命周期管理
- Android6.0运行时权限
- Android、iOS手机端-添加背景音乐
- SRIO学习(七)——Direct I/O 操作(二)
- 原生JS轮播图
- github上传项目
- studio混淆apk打包错误:app:transformClassesAndResourcesWithProguardForRelease'. > java.ioe异常
- iOS-导航栏透明以及阴影
- High "enq: SQ