Để tạo RecyclerView
với nhiều kiểu xem chỉ thực hiện getItemViewType()
, hai khác nhau ViewHolder
s và chăm sóc của tham số viewType
trong onCreateViewHolder()
và bindViewHolder()
.
dụ viết tắt:
public class MultipleViewTypesAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private static final int VIEW_TYPE_FIRST = 0;
private static final int VIEW_TYPE_SECOND = 1;
class ViewHolderFirst extends RecyclerView.ViewHolder {
...
}
class ViewHolderSecond extends RecyclerView.ViewHolder {
...
}
@Override
int getItemViewType(int position) {
return position % 2;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
switch (viewType) {
case VIEW_TYPE_FIRST: return new ViewHolderFirst(...);
case VIEW_TYPE_SECOND: return new ViewHolderSecond(...);
...
}
}
@Override
public void bindViewHolder(RecyclerView.ViewHolder holder, int position) {
switch (getItemViewType(position)) {
case VIEW_TYPE_FIRST:
ViewHolderFirst viewHolderFirst = (ViewHolderFirst)holder;
...
break;
case VIEW_TYPE_SECOND:
ViewHolderSecond viewHolderSecond = (ViewHolderSecond)holder;
...
break;
...
}
}
}
Bản sao có thể có của [Cách tạo RecyclerView với nhiều loại chế độ xem?] (http://stackoverflow.com/questions/26245139/how-to-create-recyclerview-with-multiple-view-type) –