1. 程式人生 > >Android 列表RecyclerView不同item的實現

Android 列表RecyclerView不同item的實現

像這個訂單列表,訂單處在不同狀態下的列表item佈局不一樣

 

實現方法

1.在一個item佈局中寫多個控制元件,再根據不同訂單情況,通過程式碼的邏輯來隱藏相對應的控制元件

控制元件的可見,不可見,隱藏請看我的下面這篇部落格

https://blog.csdn.net/yh18668197127/article/details/84840123

2.分別寫多套佈局,用RecyclerView載入多套佈局的的方式實現

根據item佈局種類建立多個viewHolder

getItemViewType()中判斷viewType返回值

onCreateViewHolder()中根據引數viewType去判斷該item項應該 inflate 哪個佈局檔案,並建立對應viewHolder

onBindViewHolder()根據載入的不同佈局進行不同的初始化操作

 

RecyclerView取代ListView的一個原因

用過ListView的都知道,在ListView中若要複用檢視快取,就要在getView()方法中手動判斷convertView是否為空,若不為空則複用檢視快取,若為空則重新載入檢視,而RecyclerView相當於對ListView的Adapter進行了再次封裝,把ListView手動判斷是否有快取的程式碼封裝到RecyclerView內部,使這部分邏輯不可見,我們只需要通過getItemCount()方法告訴RecyclerView有多少項資料,然後在onCreateViewHolder()中載入item佈局例項化ViewHolder,然後在onBindViewHolder()中完成資料的繫結即可。