【发布时间】:2014-11-20 13:48:14
【问题描述】:
我正在使用 recycleview 来显示一个列表。我想知道我们如何显示不同类型的视图?如在,不同的 ViewHolders int 同一个适配器
在我们使用getItemViewType()的简单listview中,recycleview有什么不同吗?
【问题讨论】:
标签: android android-recyclerview
我正在使用 recycleview 来显示一个列表。我想知道我们如何显示不同类型的视图?如在,不同的 ViewHolders int 同一个适配器
在我们使用getItemViewType()的简单listview中,recycleview有什么不同吗?
【问题讨论】:
标签: android android-recyclerview
要创建具有多个视图类型的RecyclerView,只需实现getItemViewType(),两个不同的ViewHolders 并注意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;
...
}
}
}
【讨论】:
编译'com.firebaseui:firebase-ui-database:1.0.1' compile 'com.firebaseui:firebase-ui-storage:1.0.1' 把它放在 gradle 中
【讨论】: