大家都知道viewpager默认会加载下一页数据,viewpager提供了一个方法setOffscreenPageLimit(),设置预加载页数

懒加载字面意思当需要的时候才去加载,不需要时不加载

之前处理fragment懒加载通过setUserVisibleHint + onHiddenChanged 这2个函数(详情此处省略),而在Androidx模式下此方法被弃用了 ,用FragmentTransaction.setMaxLifecycle()来代替

Google在Androidx下增加了 setMaxLifecycle 来控制fragment 所能调用最大的生命周期

如下所示

根据官方的注释,我们能知道,该方法可以设置活跃状态下 Fragment 最大的状态,如果该 Fragment 超过了设置的最大状态,那么会强制将 Fragment 降级到正确的状态。

那如何使用该方法呢?

viewpager+fragment 模式下

在 FragmentPagerAdapter 与 FragmentStatePagerAdapter 新增了含有 behavior 字段的构造函数,如下所示

其中Behavior的声明

 根据注释说明 我们得到2点结论

  1. behavior 的值为 BEHAVIOR_SET_USER_VISIBLE_HINT,当 fragment对用户的可见状态发生改变时,setUserVisibleHint 方法会被调用。
  2. 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 懒加载相关推荐

  1. ViewPager+Fragment懒加载

    原文链接:http://blog.csdn.net/linglongxin24/article/details/53205878 Android中ViewPager+Fragment取消(禁止)预加载 ...

  2. Androidx ViewPager+Fragment 懒加载

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/113545036 本文出自[赵彦军的博客] 目录 前言 懒加载(预加载) 传统模式 ...

  3. Fragment 懒加载

    为何懒加载 在很多 App 都会有ViewPage + Fragment 的基本组合,但是众所周知 viewPager 的 预加载机制,即使设置函数 setOffscreenPageLimit(0) ...

  4. 【Android】再来一篇Fragment懒加载(只加载一次哦)

    本篇文章已授权微信公众号 dasu_Android(大苏)独家发布 使用前需知 2017-7-14更新: 目前有人使用后出现了诸如首次打开显示空白界面,但点击有反应:或来回切换又变空白界面的问题.这些 ...

  5. Fragment懒加载(三)

    老实说,我没想到我会写关于Fragment懒加载的第三章内容,我之前是打算写两章就完结了,以我的知识储备,我就只认为懒加载只是为了配合viewpager防止预加载而已,然后我错了,我没想到Fragme ...

  6. 带你深入了解Fragment懒加载

    Fragment懒加载是一种优化技术,用于在Android应用中延迟加载和初始化Fragment的内容,以提高应用性能和用户体验.它的核心思想是只有在Fragment可见时才加载数据和执行相关操作,而 ...

  7. Android——Fragment懒加载

    Fragment懒加载 简述 LazyFragment 简述 大部分APP框架由一个单例MainActivity和多个Fragment组成:在实际开发中常使用BottomNavigationView+ ...

  8. Fragment结合ViewPager之懒加载

    什么是懒加载?为什么要用懒加载?### 1.什么是懒加载 懒加载就是当ViewPager和Fragment结合在一起使用时,Fragment呈现在用户面前时才加载数据,当其从未被呈现在用户面前时,不会 ...

  9. 【Android】Fragment懒加载和ViewPager的坑

    本篇文章已授权微信公众号 安卓巴士Android开发者门户 独家发布 效果 老规矩,先来看看效果 ANDROID和福利两个Fragment是设置的Fragment可见时加载数据,也就是懒加载.圆形的旋 ...

最新文章

  1. ruby语言开源Web应用框架 Ruby on Rails 简介
  2. TypeScript里的空值合并运算符(双问号)用法
  3. ajax添加一行,ajax请求到数据会给上一个元素添加数据
  4. cookies默认过期时间_「图」Chrome Canary新版已启动“增强版cookies控制”预览测试...
  5. 学模拟电路的神器everycircuit
  6. 都说Hadoop与大数据平台难懂?我就花了6分钟,但是看得明明白白
  7. 【Flink】Flink 从 1.9.1 版本 升级到 1.12.4 版本的 注意事项 以及 过程
  8. 联想g510拆键盘的简单方法_你也可以轻松学会的最简单、最实用、最有效的方法——联想记忆法...
  9. 奥比中光ROS启动节点运行异常退出:[camera/driver-2] process has finished cleanly
  10. python程序精确法求解反应谱,傅里叶谱,功率谱
  11. linux su 拒绝权限,Linux禁止非WHEEL用户使用su命令
  12. 阿里云注册域名,购买云服务器,备案,域名解析教程
  13. DNA甲基化芯片专题
  14. 使用乘法表计算GF(2^8)中的乘法
  15. thingJS模模搭(campusbuilder/momoda)及3dsmax插件遇到的坑
  16. 集成学习【三】:Bagging结合神经网络及代码实现
  17. Kaggle入门项目,泰坦尼克号幸存者
  18. 算法设计——基姆拉尔森计算公式:计算几月几号是星期几
  19. 使用breakpad收集native奔溃日志及dump解析
  20. User’s Guide

热门文章

  1. 【机器学习】解释对偶的概念及SVM中的对偶算法?(面试回答)
  2. 学习Python爬虫记录贴
  3. zzx 整合spring
  4. su命令无权限,如何解决
  5. zigbee组网过程
  6. 数字签名(2) 协同签名
  7. 运营支持是干什么_运营主要是干什么的?
  8. 七段显示数码管和译码器
  9. 防火墙技术实验,访问控制
  10. Java 网络编程(大全)