码迷,mamicode.com
首页 > 其他好文 > 详细

Fragment懒加载预加载

时间:2017-04-27 10:32:11      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:isp   结合   return   int()   nbsp   hint   alt   rri   控件   

 

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懒加载预加载

标签:isp   结合   return   int()   nbsp   hint   alt   rri   控件   

原文地址:http://www.cnblogs.com/bhm666/p/6772477.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!