Android ViewPager + Fragment懒加载
来源:互联网 发布:打破刚性兑付 知乎 编辑:程序博客网 时间:2024/05/18 02:47
ViewPager + Fragment懒加载
- 就是对于很多的viewpager+fragment而言,viewpager每次都会预加载很多个fragment,若是fragment内数据操作十分复杂和耗时的话,就会导致大量的浪费内存问题。
- 所以我们先编写一个BaseFragment,以方便作为基类,之后的子类就容易写了.
主要是知道了Fragment源码里面有一个setUserVisibleHint的方法,这个方法是在onCreateView之前调用的,所以在这个方法里面可以做一些处理.
废话不多说,直接上代码.
public abstract class BaseFragment extends Fragment { protected boolean isVisiable=false; @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if(getUserVisibleHint()){ isVisiable=true; onVisiable(); }else{ isVisiable=false; onInvisiable(); } } protected void onVisiable() { onLazy(); } protected abstract void onLazy(); protected void onInvisiable() { }}
这里的isVisiable作为protected类型,也就是子类中也会出现,同理也可以知道其他protected 类型的也是可以在子类中直接调用的.
这里的onLazy()就是懒加载数据的地方,回到子类中,代码如下:
private boolean isFinish = false; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_base, container, false); initView(); //这里初始化控件 isFinish = true; //初始化完成标识 onLazy(); return view; } @Override protected void onLazy() { //若不可见 或 还没初始化完成 if (!isVisiable || !isFinish) { return; } // TODO: 2017.3.11 加载数据 }
Fragment的懒加载就这么简单
0 0
- Android ViewPager + Fragment懒加载
- Android ViewPager + Fragment 懒加载处理
- android ViewPager+Fragment之懒加载
- Android之Viewpager+Fragment实现懒加载
- Android之Viewpager+Fragment实现懒加载
- Android之ViewPager+Fragment实现懒加载
- Android的Viewpager+Fragment懒加载
- ViewPager+Fragment懒加载
- Viewpager Fragment懒加载
- ViewPager+Fragment懒加载
- ViewPager+Fragment懒加载
- viewPager fragment 懒加载
- fragment viewpager 懒加载
- ViewPager加载Fragment懒加载
- Android viewpager + fragment 的懒加载 只加载一次
- viewpager+fragment的懒加载
- ViewPager实现Fragment懒加载
- viewpager+fragment 懒加载操作
- 指数运算
- 两个算法--Day3
- Build path entry is missing: org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.
- Leetcode 2. Add Two Numbers The Solution of Python and Javascript
- VS设置代码背景
- Android ViewPager + Fragment懒加载
- MATLAB第二次作业 例1.4-1~2
- 7层网络结构分析
- 人月神话--焦油坑
- socketpair理解
- Lootcode 1. Two Sum The Solution of Python and Javas
- python基础之函数
- shell小白 想玩自动化部署,无密码ssh 登录远程服务器,执行scp命令传送war包 并重启tomcat。
- rman恢复数据库二