Fragment懶加載預加載

 

1. 預加載viewpager.setOffscreenPageLimit(2);,默認是預加載1,能夠結合懶加載使用。ide

 

  若是但願進入viewpager,Fragment只加載一次,再次滑動不需加載(只有退出Activity),spa

 

能夠重寫viewpager adapter的getItem,去掉superget

 

 

2.懶加載  string

  public abstract class LazyFragment extends Fragment {  it

             protected boolean isVisible;  io

             /** class

              * 在這裏實現Fragment數據的緩加載. fragment

              * @param isVisibleToUser im

             */  layout

    @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;  

         }  

    //填充各控件的數據  

      }  

}

相關文章
相關標籤/搜索