Fragment懒加载预加载

Posted 我又不会乱来

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Fragment懒加载预加载相关的知识,希望对你有一定的参考价值。

 

1. 预加载viewpager.setOffscreenPageLimit(2);,默认是预加载1,可以结合懒加载使用。

 

  如果希望进入viewpager,Fragment只加载一次,再次滑动不需加载(只有退出Activity),

 

可以重写viewpager adapter的getItem,去掉super

 

 

2.懒加载  

  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(){}  

}  

 

 

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懒加载预加载的主要内容,如果未能解决你的问题,请参考以下文章

封装篇——Fragment懒加载

Fragment 官方懒加载源码分析

Fragment 官方懒加载源码分析

Fragment 官方懒加载源码分析

ViewPager+Fragment 懒加载

安卓中viewpager+tablayout+fragment懒加载怎么做