泉缘泉 发表于 2024-9-2 04:34:19

碎碎恋之懒加载和预加载

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
https://i-blog.csdnimg.cn/direct/a9ae5df344774ff6881eb878ebbf94ba.png
这是现在官网的图,已经没有onActivityCreated了;
onCreateView(),正在创建view;
onViewCreated(),已经创建完毕了,可以在这里绑定页面控件;
1.4 fragment之间的通信



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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 碎碎恋之懒加载和预加载