android——Fragment实现懒加载

原创 2015年11月19日 08:57:55

效果:

  Activity中ViewPager嵌套多个Fragment.当切换到这个这个Fragment时才进行初始化,减少Activity初始化操作

方法:

   setUserVisibleHint方法是判断Fragment中的UI控件是否可见的。可以自行实现,在UI控件可见时进行加载的操作。注:setUserVisibleHint是在onCreateView之前调用的。所以,在该方法中,必须先判断是否find some view,在做具体操作,防止空指针。

模板:

public abstract class LazyFragment extends Fragment {
    protected boolean isVisible;
  
    @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(){}
}
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;
        }
        //填充各控件的数据
    }
}


附:Fragment的其他生命周期

onAttach()

  当fragment和activity被关联时调用。

onCreateView()

  当创建fragment的UI被初始化时调用。

onActivityCreated()

  当activity的onCreate()方法返回时调用。

onDestroyView()

  当fragment的UI被移除的时候调用。

onDetach()

  当fragment和activity去关联时调用。



http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1021/1813.html

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android——了解Fragment懒加载、Material Design、picasso的应用。

有些天没有写博客了,这两天写了一个demo,今天分享给大家,关于Fragment的懒加载,现在很多应用都应用到了懒加载,如网易、今日头条、微信等等,非常普遍,design扩展的伸缩效果,市场上应用的比...

Android Fragment 实现懒加载

Fragment 懒加载使用场景 当使用viewpager+adapter作为应用大的布局时,viewpager会通过setOffscreenPageLimit来设置预加载的项目,不设置setOf...

Android之RadioButton配合Fragment实现懒加载

在Android开发搭建主界面框架的时候,我们一般都会使用RadioButton然后监听点击事件配合FragmentManager来实现主界面的切换。如图,假设我们APP有四个主模块:一般的思路 首先...

Android Fragment懒加载简单实现

Android Fragment懒加载简单实现

Android开发之Viewpager+Fragment实现懒加载

网上的懒加载分析文章已经很多,这里也给出我自己的分析思路。 要实现懒加载必须先理解在切换ViewPager时,Fragment的生命周期。 public class MyFragment extend...

Android Fragment的setUserVisibleHint方法实现懒加载

一、概述:我们在做应用开发的时候,一个Activity里面可能会以viewpager(或其他容器)与多个Fragment来组合使用,而如果每个fragment都需要去加载数据,或从本地加载,或从网络加...
  • lovoo
  • lovoo
  • 2016年06月21日 21:34
  • 381

Andriod开发技巧——Fragment的懒加载

我们在做应用开发的时候,一个Activity里面可能会以viewpager(或其他容器)与多个Fragment来组合使用,而如果每个fragment都需要去加载数据,或从本地加载,或从网络加载,那么在...

【Andriod】开发技巧——Fragment的懒加载

我们在做应用开发的时候,一个Activity里面可能会以viewpager(或其他容器)与多个Fragment来组合使用,而如果每个fragment都需要去加载数据,或从本地加载,或从网络加载,那么在...

封装篇——Fragment懒加载

为什么要做fragment的懒加载封装呢???一个字“懒”!!! 我老大告诉我:不会偷懒的程序员不是个好厨师 ^~^ ^~^ ^~^我们可能会以 viewpager(或其他容器)与多个Fragme...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android——Fragment实现懒加载
举报原因:
原因补充:

(最多只允许输入30个字)