我正在使用RecyclerView来显示列表。我想知道如何显示不同类型的视图?也就是说,在同一个适配器中使用不同的ViewHolders
在简单的ListView中,我们使用getItemViewType(),在RecyclerView中有什么不同吗?
我正在使用RecyclerView来显示列表。我想知道如何显示不同类型的视图?也就是说,在同一个适配器中使用不同的ViewHolders
在简单的ListView中,我们使用getItemViewType(),在RecyclerView中有什么不同吗?
要创建多种视图类型的RecyclerView
,只需实现getItemViewType()
方法,使用两个不同的ViewHolder
并注意在onCreateViewHolder()
和bindViewHolder()
中处理viewType
参数。
简单示例:
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;
...
}
}
}
在gradle中添加以下代码:
compile 'com.firebaseui:firebase-ui-database:1.0.1'
compile 'com.firebaseui:firebase-ui-storage:1.0.1'