【已解决】 18【领券联盟】实现数据请求多个状态结果的处理 首页HomFragment又被覆盖了一层空数据页面

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_base, container, false);
mBaseContainer = rootView.findViewById(R.id.fragment_base_container);
loadStatesView(inflater, container);
mBind = ButterKnife.bind(this, rootView);
initView(rootView);
initPresenter();
loadData();
return rootView;
}
/**
* 加载各种状态的View
* @param inflater
* @param container
*/
private void loadStatesView(LayoutInflater inflater, ViewGroup container) {
mSuccessView = loadSuccessView(inflater, container);
mBaseContainer.addView(mSuccessView);
mLoadingView = loadLoadingView(inflater, container);
mBaseContainer.addView(mLoadingView);
mErrorView = loadErrorView(inflater, container);
mBaseContainer.addView(mErrorView);
mEmptyView = loadEmptyView(inflater, container);
mBaseContainer.addView(mEmptyView);
setUpState(State.EMPTY);
}
debug之后,发现createView会重复调用,loadData也就重复调用,导致之前SUCCESS值被冲掉,会在覆盖一层EMPTY的界面。也就看到了这些表象。希望高人指点!
看你这个架势!你觉得是createView会重复调用,loadData也就重复调用了???
你这个不是页面内容Fragment吗?不是多个页面公用一个类吗?
而且,一开始,ViewPager默认就创建了两个。所以你就看到了重复调用了????
至于为什么显示内容为空,我有一些不成熟的猜想,没办法,你的资料就给了这么点。
1、 你的状态错乱了
2、你没有根据ID返回结果给对应ID的页面
建议,理清楚流程,或者再看一次视频。
先知道来龙去脉,你后面的其他页面就好办了。
什么原因导致的呀???