關於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

相關文章
相關標籤/搜索