viewpager+fragment 懒加载
大家都知道viewpager默认会加载下一页数据,viewpager提供了一个方法setOffscreenPageLimit(),设置预加载页数
懒加载字面意思当需要的时候才去加载,不需要时不加载
之前处理fragment懒加载通过setUserVisibleHint + onHiddenChanged 这2个函数(详情此处省略),而在Androidx模式下此方法被弃用了 ,用FragmentTransaction.setMaxLifecycle()来代替
Google在Androidx下增加了 setMaxLifecycle 来控制fragment 所能调用最大的生命周期
如下所示
根据官方的注释,我们能知道,该方法可以设置活跃状态下 Fragment 最大的状态,如果该 Fragment 超过了设置的最大状态,那么会强制将 Fragment 降级到正确的状态。
那如何使用该方法呢?
viewpager+fragment 模式下
在 FragmentPagerAdapter 与 FragmentStatePagerAdapter 新增了含有 behavior
字段的构造函数,如下所示
其中Behavior的声明
根据注释说明 我们得到2点结论
- behavior 的值为
BEHAVIOR_SET_USER_VISIBLE_HINT
,当 fragment对用户的可见状态发生改变时,setUserVisibleHint
方法会被调用。 - behavior 的值为
BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT
,当前选中的 fragment在Lifecycle.State#RESUMED
状态 ,其他不可见的 fragment会被限制在Lifecycle.State#STARTED
状态。
view pager的适配器为 FragmentPagerAdapter且 behavior为 BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT时
切换时
只有当前可见 fragment调用onResume。
add+hide+show模式下
基于 ViewPager 在 setPrimaryItem
方法中的思路,我们可以在调用 add+show+hide 时,
最后
关于 Fragment 的懒加载实现,非常愿意听到大家不同的声音,如果你有更好的方案,可以在评论区留下您的 idea,如有错误请指出,谢谢!
viewpager+fragment 懒加载相关推荐
- ViewPager+Fragment懒加载
原文链接:http://blog.csdn.net/linglongxin24/article/details/53205878 Android中ViewPager+Fragment取消(禁止)预加载 ...
- Androidx ViewPager+Fragment 懒加载
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/113545036 本文出自[赵彦军的博客] 目录 前言 懒加载(预加载) 传统模式 ...
- Fragment 懒加载
为何懒加载 在很多 App 都会有ViewPage + Fragment 的基本组合,但是众所周知 viewPager 的 预加载机制,即使设置函数 setOffscreenPageLimit(0) ...
- 【Android】再来一篇Fragment懒加载(只加载一次哦)
本篇文章已授权微信公众号 dasu_Android(大苏)独家发布 使用前需知 2017-7-14更新: 目前有人使用后出现了诸如首次打开显示空白界面,但点击有反应:或来回切换又变空白界面的问题.这些 ...
- Fragment懒加载(三)
老实说,我没想到我会写关于Fragment懒加载的第三章内容,我之前是打算写两章就完结了,以我的知识储备,我就只认为懒加载只是为了配合viewpager防止预加载而已,然后我错了,我没想到Fragme ...
- 带你深入了解Fragment懒加载
Fragment懒加载是一种优化技术,用于在Android应用中延迟加载和初始化Fragment的内容,以提高应用性能和用户体验.它的核心思想是只有在Fragment可见时才加载数据和执行相关操作,而 ...
- Android——Fragment懒加载
Fragment懒加载 简述 LazyFragment 简述 大部分APP框架由一个单例MainActivity和多个Fragment组成:在实际开发中常使用BottomNavigationView+ ...
- Fragment结合ViewPager之懒加载
什么是懒加载?为什么要用懒加载?### 1.什么是懒加载 懒加载就是当ViewPager和Fragment结合在一起使用时,Fragment呈现在用户面前时才加载数据,当其从未被呈现在用户面前时,不会 ...
- 【Android】Fragment懒加载和ViewPager的坑
本篇文章已授权微信公众号 安卓巴士Android开发者门户 独家发布 效果 老规矩,先来看看效果 ANDROID和福利两个Fragment是设置的Fragment可见时加载数据,也就是懒加载.圆形的旋 ...
最新文章
- ruby语言开源Web应用框架 Ruby on Rails 简介
- TypeScript里的空值合并运算符(双问号)用法
- ajax添加一行,ajax请求到数据会给上一个元素添加数据
- cookies默认过期时间_「图」Chrome Canary新版已启动“增强版cookies控制”预览测试...
- 学模拟电路的神器everycircuit
- 都说Hadoop与大数据平台难懂?我就花了6分钟,但是看得明明白白
- 【Flink】Flink 从 1.9.1 版本 升级到 1.12.4 版本的 注意事项 以及 过程
- 联想g510拆键盘的简单方法_你也可以轻松学会的最简单、最实用、最有效的方法——联想记忆法...
- 奥比中光ROS启动节点运行异常退出:[camera/driver-2] process has finished cleanly
- python程序精确法求解反应谱,傅里叶谱,功率谱
- linux su 拒绝权限,Linux禁止非WHEEL用户使用su命令
- 阿里云注册域名,购买云服务器,备案,域名解析教程
- DNA甲基化芯片专题
- 使用乘法表计算GF(2^8)中的乘法
- thingJS模模搭(campusbuilder/momoda)及3dsmax插件遇到的坑
- 集成学习【三】:Bagging结合神经网络及代码实现
- Kaggle入门项目,泰坦尼克号幸存者
- 算法设计——基姆拉尔森计算公式:计算几月几号是星期几
- 使用breakpad收集native奔溃日志及dump解析
- User’s Guide