当前位置: 首页 > article >正文

碎碎恋之懒加载和预加载

目录

    • 0 前言
    • 1 fragment复习
      • 1.1 静态创建
      • 1.2 动态创建
      • 1.3 两者生命周期
      • 1.4 fragment之间的通信

0 前言

懒加载,延迟加载;如kotlin中初始化;减小资源消耗,可以避免同一时间需要加载的内容过多。
预加载,提前加载;如recyclerView预加载。

  • 以fragment和viewPager举例,当我们左右滑动时,一定有预加载,左右页面进行缓存或销毁,保存在arrayList里面。可设置值,最少加载1。
  • viewPager2提供了懒加载;此时预加载的是空白页面,滑动到了要到达的页面才加载数据更新ui。

可见的时候加载数据,不可见的时候停止加载。

1 fragment复习

前置条件:fragment都需要依附与activity中。

1.1 静态创建

思路: 在activity的xml中加fragment标签作为容器,name或class属性找绑定的fragment类。

1.2 动态创建

  • 在activity的xml中加fragment标签作为容器,但不是直接加标签绑定。
  • 使用使用fragmentManager创建transaction,调用transaction的添加或者替换方法,最后调用commit方法完成fragment加载,利用容器资源作为标志位,设置所要显示的位置。这块代码可以放到activity创建的时候初始化。
    第二步类似于数据库一次事务的提交。

1.3 两者生命周期

Android生命周期
静态:fragment先创建;再是activity创建。
动态:activity先创建,再fragment
在这里插入图片描述
这是现在官网的图,已经没有onActivityCreated了;
onCreateView(),正在创建view;
onViewCreated(),已经创建完毕了,可以在这里绑定页面控件;

1.4 fragment之间的通信

  • 在Fragment中调用Activity方法:getActivity方法会获得Activity对象
  • 在Activity中调用Fragment方法:通过接口回调
  • Fragment中调用Fragment方法:getActivity 获取到Activity,findFragmentById 获取Fragment
  • Activity在创建的时候通过Bundle传输数据
  • viewmodel

http://www.kler.cn/a/286675.html

相关文章:

  • http的请求体各项解析
  • [STM32 - 野火] - - - 固件库学习笔记 - - -十一.电源管理系统
  • 【算法】经典博弈论问题——巴什博弈 python
  • 期权帮|在股指期货中超过持仓限额怎么办?
  • 开源鸿蒙开发者社区记录
  • IPhone16 Pro 设备详情
  • 【Tools】Apache Spark 的基本概念和在大数据分析中的应用
  • 基于BP神经网络的项目风险识别,BP神经网络训练窗口详解,BP神经网络详细原理
  • mac iterm2 rz sz 无法上传下载问题
  • 深度学习系列73:使用rapidStructure进行版面分析
  • k3s安装部署说明
  • Bean 的实例化(创建 | 获取)
  • Prometheus和Grafana构建现代服务器监控体系
  • 数据结构之最短路径
  • RAG+知识图谱
  • Linux 背景、命令
  • JAVAEE初阶第一节——计算机的工作原理
  • C++国密SM2算法加解密的使用
  • vue3+elementplus的表格展示和分页实战
  • Oracle超详细(数据库编程)
  • vim 简易配置
  • 一键解决LBP2900通信错误的问题(同样支持Win 11系统)
  • 计算机毕业设计选题-基于python的OA办公管理系统【python-爬虫-大数据定制】
  • kubernetes培训
  • 深入探讨Java JSON解析与HTML标签清除:详解与实例
  • Vue3入门 - 解决pinia判断用户是否登录相关错误