package cn.irains.access_control_v2.common;

import android.support.v4.app.Fragment;

/**

  • Author: msdx (645079761@qq.com)

  • Time: 14-7-17 下午5:46

*/

public abstract class LazyFragment extends Fragment {

protected boolean isVisible;

/**

  • 在这里实现Fragment数据的缓加载.

  • @param isVisibleToUser

*/

@Override

public void setUserVisibleHint(boolean isVisibleToUser) {

super.setUserVisibleHint(isVisibleToUser);

if(getUserVisibleHint()) {

isVisible = true;

onVisible();

} else {

isVisible = false;

onInvisible();

}

}

protected void onVisible(){

lazyLoad();

}

protected abstract void lazyLoad();

protected void onInvisible(){}

}

4.在LazyFragment,我增加了三个方法,一个是onVisiable,即fragment被设置为可见时调用,一个是onInvisible,即fragment被设置为不可见时调用。另外再写了一个lazyLoad的抽象方法,该方法在onVisible里面调用。你可能会想,为什么不在getUserVisibleHint里面就直接调用呢?

在fragment中,我们还需要创建视图(onCreateView()方法),可能还需要在它不可见时就进行其他小量的初始化操作(比如初始化需要通过AIDL调用的远程服务)等。而setUserVisibleHint是在onCreateView之前调用的,那么在视图未初始化的时候,在lazyLoad当中就使用的话,就会有空指针的异常。而把lazyLoad抽离成一个方法。

然后子类就可以如下代码:

public class OpenResultFragment extends LazyFragment{

// 标志位,标志已经初始化完成。

private boolean isPrepared;

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

Log.d(LOG_TAG, “onCreateView”);

View view = inflater.inflate(R.layout.fragment_open_result, container, false);

//XXX初始化view的各控件

isPrepared = true;

lazyLoad();

return view;

}

@Override

protected void lazyLoad() {

if(!isPrepared || !isVisible) {

return;

}

//填充各控件的数据

}

最后

希望本文对你有所启发,有任何面试上的建议也欢迎留言分享给大家。

好了,今天的分享就到这里,如果你对在面试中遇到的问题,或者刚毕业及工作几年迷茫不知道该如何准备面试并突破现状提升自己,对于自己的未来还不够了解不知道给如何规划,可以加一下下面的技术群来看看同行们都是如何突破现状,怎么学习的,来吸收他们的面试以及工作经验完善自己的之后的面试计划及职业规划。

这里放一下资料获取方式:GitHub

好了~如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。

3G-1645001098880)]

好了~如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。

[外链图片转存中…(img-mVmBziVW-1645001098881)]

为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!希望读到这的您能点个小赞和关注下我,以后还会更新技术干货,谢谢您的支持!

Fragment懒加载,上岸蚂蚁金服相关推荐

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

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

  2. Fragment懒加载(三)

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

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

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

  4. Android——Fragment懒加载

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

  5. viewpager+fragment 懒加载

    大家都知道viewpager默认会加载下一页数据,viewpager提供了一个方法setOffscreenPageLimit(),设置预加载页数 懒加载字面意思当需要的时候才去加载,不需要时不加载 之 ...

  6. Fragment 懒加载

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

  7. ViewPager+Fragment懒加载

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

  8. Androidx ViewPager+Fragment 懒加载

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

  9. Android Fragment懒加载

    懒加载思路 在Fragment布局创建的时候调用懒加载方法,创建之后将isViewPrepared设置为true. /**标记Fragment视图是否已经初始化完毕*/private boolean ...

  10. Fragment懒加载预加载

    1. 预加载viewpager.setOffscreenPageLimit(2);,默认是预加载1,可以结合懒加载使用. 如果希望进入viewpager,Fragment只加载一次,再次滑动不需加载( ...

最新文章

  1. python中的日期与时间
  2. 集体智慧编程 - 构建价格模型
  3. 百度移动联盟(munion)-广告平台投放流程详细介绍 (绿色通道)
  4. 模态对话框和全选反选
  5. oracle迁移 rman,ORACLE RMAN迁移
  6. 9种缺陷管理工具对比Bugzilla、testRail、TestLink、redmine、禅道、CODING、jira、TAPD、PingCode
  7. 使用Redis,QQ邮箱模拟验证码验证
  8. 方法论-5W2H七问分析法
  9. U盘装系统教程,一键安装和U盘安装的区别
  10. 黑群晖vmm专业版_群晖的ABB应用不错,但必须吐槽群晖 VMM功能,让你看看就是不让你好好用!!!...
  11. 低功耗MCU设计理念
  12. MySQL查询近12个月数据,无则补0
  13. CE_tutorial_game
  14. Oracle ERP系统日常维护和巡检
  15. 我的世界服务器地图名称修改,《我的世界》修改地图名称颜色教程
  16. 【扫描线】六道剑「一念无量劫」
  17. 绝了!Spring事务是如何传播的?快来收藏!
  18. 如何回答这四个非常难的面试问题?
  19. 大龄青年的艰难转行IT之路(二)
  20. 国内银行核心系统建设情况调研报告

热门文章

  1. K8s Mysql 一主多从 主机宕机的解决方法
  2. 微信扫码支付模式一提示系统繁忙
  3. Python将中文转成拼音
  4. 【杂说】东南大学建校117周年,校庆快乐
  5. python什么是函数的唯一标识_Python:从modu中唯一标识一个函数
  6. 展示数据使用:recyclerview,retrofit,greendao,butterknife,eventbus,fresco。实现效果图列表。MVP模式。
  7. 孙玉 计算机教授,孙玉
  8. 图像质量评估(2) -- 图像质量相关参数:分辨率
  9. Java8新特性之新时间API
  10. 走进C++程序世界-----指针(动态申请空间和释放空间)