viewpder预加载问题

public class LazyFragment extends Fragment {
    protected PullToRefreshListView mPullToRefreshListView;
    protected EmptyLayout mEmptyLayout;
    protected ListView mListView;
    protected int maxId = 0;
    //标志位,标志已经初始化完成
    protected boolean isInit = false;
    //是否已被加载过一次,第二次不再去请求数据
    protected boolean mHasLoadedOnce;
    private View view;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.activity_common_list, null);
        initView(view);
        return view;
    }

    public void initView(View view) {
        mPullToRefreshListView = (PullToRefreshListView) view.findViewById(R.id.pull_refresh_list);
        mEmptyLayout = (EmptyLayout) view.findViewById(R.id.error_layout);
        isInit = true;
        isCanLoadData();
    }

    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
        isCanLoadData();
    }

    /**
     * 禁止预加载
     */
    private void isCanLoadData() {
        if (!isInit) {
            return;
        }
        if (getUserVisibleHint() && !mHasLoadedOnce) {
            loadData();
        }
    }

    protected void loadData() {
    //数据加载成功后
    mHasLoadedOnce = true;
  }

}

猜你喜欢

转载自blog.csdn.net/zzf0521/article/details/85160596