RecyclerView的資料更新問題

2021-07-31 02:49:26 字數 1126 閱讀 4795

相信很多人都應該知道recyclerecyclerview的基本用法,如果不知道,請參考:

概覽

好了,假設你已經基本了解了recyclerview的用法,正如上述文章中講的那樣,recyclerview跟listview不一樣,當我們想要更新資料的時候,有兩種情況:

1、dataset為list,也通常是這樣:

我們想要更新資料的時候,請記住這句話「whenever adding or removing elements, always make changes to the existing list」,也就是說,請在原資料集上更新你的資料,而不是用乙個新的資料集替代,記得最後要 madapter.notifydatasetchanged()一下喲。

不完整截圖

上面是部分截圖,由於還沒完成,布局暫時還很醜,請見諒。其實上面的就是乙個「異質」的recyclerview,資料都是乙個類物件的資料,adapter的建構函式為:

現在的需求是每次下拉重新整理天氣資料的時候,更新weather,一開始我的做法是:weather = new weather(...), 只要你看了上面(一開始想了好久啊),就應該知道這是錯的了,後來想到了兩個辦法解決:

(1)借鑑的seeweather的做法:對weather物件的每個字段進行賦值:

(2)傳入list,只不過這個list只有乙個weather物件,然後就可以每一次把原來的remove掉,再新增上新的weather物件。如下:

datalist.clear(); //去掉之前的資料

datalist.add(weather); //新增新的weather物件

madapter.notifydatasetchanged();

RecyclerView 資料復用問題

override funonbindviewholder holder viewholder,position int holder.cb.ischecked info.ischecked holder.cb.setonclicklistener else 如上 只判斷了不為空時 設定資料 沒判斷資...

RecyclerView 滑動之後顯示資料錯亂

由於recyclerview的onbindviewholder 方法,只有在getitemviewtype 返回型別不同時才會呼叫,這點是跟listview的getview 方法不同的地方,所以如果想要每次都呼叫onbindviewholder 重新整理item資料,就要重寫getitemviewt...

RecyclerView 資料預載入動畫

1.空布局 2.adapter定義兩個變數乙個表示有資料的布局,乙個表示無資料的布局 private static final int type only font 0 文字 private static final int empty view 1 空布局3.重寫adaper中的getitemvi...