Skip to content

Instantly share code, notes, and snippets.

@guhongya
Last active March 13, 2018 03:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save guhongya/93b6e045ef024485cfd439df8ea6a3ec to your computer and use it in GitHub Desktop.
Save guhongya/93b6e045ef024485cfd439df8ea6a3ec to your computer and use it in GitHub Desktop.
Android fragment 懒加载
public abstract class LazyFragment extends BaseFragment {
    protected boolean mVisiable=false;
    protected boolean mCreated=false;
    private boolean isFirst=true;

    protected abstract void loadData();


    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        mCreated=true;
        if(mCreated&&mVisiable&&isFirst){
            loadData();
            isFirst=false;
        }
    }

    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
        mVisiable=isVisibleToUser;
        if(mVisiable&&mCreated&&isFirst){
            loadData();
            isFirst=false;
        }
    }

    @Override
    public void onDestroyView() {
        isFirst=true;
        mCreated=false;
        mVisiable=false;
        super.onDestroyView();
    }

}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment