場景再現:當我使用tabLayout + Fragment 切換不同的fragment時,出現了資料重復顯示的問題;
思考邏輯:
- 每次切換fragment都會重新獲取資料,但是list集合是全域的,多切換兩次,list資料就會變多,所以需要加判斷,當list集合的資料超過第一次獲取下來list集合的資料的時候就clear,之后每次進入fragment的時候initView都會執行,所以也會請求資料,這時候我們添加一個boolean來判斷;
15:56:092020-04-16
解決方案:
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()方法重新獲取資料;
``` @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();
}
}
大功告成;
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/11361.html
標籤:Android
