一对多广播,Fragment延迟加载
来源:互联网 发布:去哪里买淘宝店铺 编辑:程序博客网 时间:2024/06/05 18:39
对于广播刷新,没看过的朋友可以先看前一篇
运用Android广播机制来通知界面刷新
Activity的onResume方法相信很多人都清楚了,在Activity回到前台的时候回调此方法,不少情况下都会在这个时机进行刷新操作,那么作为Fragment,怎么去正确地判断Fragment的刷新时机呢,就需要我们去模拟一个Fragment版本的onResume
Fragment提供的API
- onResume
- onHiddenChanged
- setUserVisibleHint….
看到这里,会发现明明API很多,为什么不能直接用?
onResume
- 此方法只要Activity回调了onResume后,会遍历回调承载的所有Fragment的onResume方法,这就造成可能Fragment并没有展示出来,但是一样回调生命周期方法,明显,不是我们想要
onHiddenChanged
onHiddenChanged是一个比较直接的方法,只要我们通过碎片管理器去show或者hide方法以后,就会回调。可以说,一般情况下只要hidden为false,该Fragment就是展示在用户前面的
当然这还远远不够,假如Fragment嵌套Fragment的情况下,假设名为a的Fragment的是名为A的Fragment一个子页面,当前a展示在前台,但是我们从A切换到B,再从B切换到A,从用户视角上来看,a从不可见重新变为可见,但是是不会回调a的onHiddenChanged方法的,说明这还远远不够
setUserVisibleHint
- ViewPager搭配Fragment相信很多人都已经炉火纯青了,tab的每一次切换,都会去调用setUserVisibleHint,将展示在前台的Fragment设置为true,未展示在前台的设置为false,显然,这个方法也是我们所需要的
梳理场景,罗列情况
- Fragment进入新的界面再返回,需要触发回调
- 搭配ViewPager切换Fragment,当某个Fragment展示在前台时,需要触发回调
- FragmentManager去管理Fragment进行hide和show,将某个Fragment展示在前台的时候需要触发回调
- Fragment嵌套Fragment,当父Fragment触发了回调了以后,也要让这个父Fragment里面展示在前台的子Fragment触发回调
先来看一下具体代码
Show Code!
(为了方便,下面的采用图片来展示代码)
- 这里定义一个mVisibleTag作为一个标志位。
- 千万注意Fragement添加到Activity以后再去判断是不是展示在前台
阅读全文
0 0
- 一对多广播,Fragment延迟加载
- fragment延迟加载
- ViewPager+Fragment延迟加载
- ViewPager+Fragment 延迟加载
- Fragment延迟加载
- Fragment延迟加载
- ViewPager+Fragment延迟加载
- Fragment延迟加载
- ViewPager+Fragment延迟加载
- Mybatis的一对多,多对一以及延迟加载
- Mybatis的一对多,多对一以及延迟加载
- JPA 一对多延迟加载与关系维护
- mybatis的一对一,一对多查询,延迟加载,缓存介绍
- Hibernate中的延迟加载、实体关联单向一对多及双向一对多实体关联
- android fragment 延迟加载数据
- Android Fragment延迟加载数据
- ViewPager+Fragment取消预加载(延迟加载)
- Mybatis - 高级映射( 一对多 ,多对多 ,延迟加载)
- Apache httpd 2.4 alias 别名配置
- win8.1由于系统更新,以致无法上网,简单粗暴的解决方法
- pip之python库安装
- Untiy AR开发 环境配置
- Ant 设置代理服务器(Windows和Linux)
- 一对多广播,Fragment延迟加载
- 还原bak后缀的数据库文件如何操作
- HC9S12X 定义及访问直接寻址区
- 160. Intersection of Two Linked Lists
- module + 异常
- Caffe2源码理解系列之IO
- 64. Minimum Path Sum
- Spring报错java.lang.IllegalStateException: BeanFactory not initialized or already closed -call 'refres
- 关于JavaScript闭包中this对象(colsure)