Android ListView區域性重新整理資料
阿新 • • 發佈:2018-12-30
對於ListView、Gridview重新整理列表我們並不陌生,只需要在資料來源改變之後,呼叫BaseAdapter的notifyDataSetChanged方法,就可以重新整理列表了。但是,如果我們只改變了某一行item的資料,只需要重新整理單條item,也去呼叫notifyDataSetChanged方法,就顯得沒必要了,因為我們並不需要去重新整理其它的item。在這裡,我們需要一種方法,只重新整理單條資料,而不是重新整理整個列表。
Google向我們推薦了一種寫法,當需要改變某一行的資料時,只需要呼叫該行的getView()即可,程式碼如下:
public void notifyDataSetChanged (ListView listView,int position){
int firstVisiblePosition = listView.getFirstVisiblePosition();
int lastVisiblePosition = listView.getLastVisiblePosition();
if(position >= firstVisiblePosition && position <= lastVisiblePosition){
View item = listView.getChildAt(position - firstVisiblePosition);
getView(position,item,listView);
}
}