关于Fragment的点击切换数据滞留问题

 场景再现:当我使用tabLayout + Fragment 切换不一样的fragment时,出现了数据重复显示的问题;java

 思考逻辑:ide

- 每次切换fragment都会从新获取数据,可是list集合是全局的,多切换两次,list数据就会变多,因此须要加判断,当list集合的数据超过第一次获取下来list集合的数据的时候就clear,以后每次进入fragment的时候initView都会执行,因此也会请求数据,这时候咱们添加一个boolean来判断;
15:56:092020-04-16this


解决方案:blog

 if (!hidden) {
if (isFirstHidden) {
size = complaintList.size();
isFirstHidden = false;
}
if (complaintList.size() > size) {
complaintList.clear();
}
showRv();
}

 

- 这样写每次从新进去以后又不显示数据了
1. 定义变量 private boolean hidden;
2. this.hidden = hidden;
3. 实现OnResume()方法从新获取数据;it

``` @Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
this.hidden = hidden;
if (!hidden) {
if (isFirstHidden) {
size = complaintList.size();
isFirstHidden = false;
}
if (complaintList.size() > size) {
complaintList.clear();
}
showRv();
}
}

@Override
public void onResume() {
super.onResume();
if (!hidden) {
showRv();
}
}

  

大功告成;class

相关文章
相关标签/搜索