并不是所有的Fragment都能使用懒加载
2016-10-12 21:17
141 查看
自从Android 3.0开始,出现了Fragment。现在,基本上所有的APP都会使用Fragment进行页面切换。
最近在写Fragment时,需要从网络获取数据,然后在fragment里面填充数据,所以就打算使用懒加载进行数据加载。
关于懒加载的资料,可参考以下文章(并不是做广告):
1.Android开发技巧--Fragment的懒加载
2.Fragment懒加载的完美实现
不过,我并没有使用ViewPager来显示Fragment,而是使用FragmentManager来对Fragment进行管理,但是在运行的时候却发现错误。
于是,我将onVisible()和onInvisible()里面都写入Log信息,然后再次运行,发现Log信息并没有打印。
所以,可得出以下结论:
只有当使用ViewPager等容器类组件显示Fragment时,才会调用setUserVisibleHint()方法,否则不会调用。
因此,如果使用FragmentManager来对Fragment管理时,不能使用懒加载进行加载数据。
最近在写Fragment时,需要从网络获取数据,然后在fragment里面填充数据,所以就打算使用懒加载进行数据加载。
关于懒加载的资料,可参考以下文章(并不是做广告):
1.Android开发技巧--Fragment的懒加载
2.Fragment懒加载的完美实现
不过,我并没有使用ViewPager来显示Fragment,而是使用FragmentManager来对Fragment进行管理,但是在运行的时候却发现错误。
于是,我将onVisible()和onInvisible()里面都写入Log信息,然后再次运行,发现Log信息并没有打印。
所以,可得出以下结论:
只有当使用ViewPager等容器类组件显示Fragment时,才会调用setUserVisibleHint()方法,否则不会调用。
因此,如果使用FragmentManager来对Fragment管理时,不能使用懒加载进行加载数据。
相关文章推荐
- 还原Wss3.0内容数据库时遇到:"ComputerName\Microsoft##SSEE 上的 WSS_Content 包含用户定义的架构。数据库在能够使用之前必须为空。请删除所有表、存储过程以及其他对象,或使用其他数据库。 " 的提示,无法加载内容数据库
- C#使用线程加载指定目录下的所有子目录和文件名称到TreeView中
- openfire+smack使用ListFragment加载好友列表
- Fragment基础点滴学习---Activity传递数据到Fragment(Fragment使用静态加载的方式)
- 关于Fragment懒加载的学习和使用+参数传递的方法
- 市面上所有号称"虚拟机","防火墙"的实时监控杀毒软件无一不是使用的IFSHOOK技术.但是同时也有一些朋友不断写MAIL给我打听如何实现读写的监控.下面给出用VTOOLSD写的代码.也就是所有实时杀毒软件的奥秘.同时,很多拦截文件操作的软件,例如对目录加
- Android viewpager+fragment实现动态加载碎片(fragment重复使用)
- Anddroid-使用Fragment的setUserVisibleHint方法实现延时加载
- 使用Java扩展机制加载所有JAR包
- Android笔记(8)---Fragment的使用(静态加载,动态加载)
- C#使用线程加载指定目录下的所有子目录和文件名称到TreeView中
- android开发,使用fragment加载webview,加载出现1秒空白。
- 使用观察者模式解决ViewPager加载照片中更新其他Fragment内容
- 多个Fragment时的加载优化,使用懒加载
- 使用Java扩展机制加载所有JAR包
- C#使用线程加载指定目录下的所有子目录和文件名称到TreeView中
- 使用线程加载指定目录下的所有子目录和文件名称到TreeView中
- 使用Java扩展机制加载所有JAR包
- 为什么建议使用link方式来加载css,而不是使用@import方式
- fragment或adapter中使用LayoutInflater加载布局时出现的问题