首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >回收视图显示不同的视图类型

回收视图显示不同的视图类型
EN

Stack Overflow用户
提问于 2014-11-20 21:48:14
回答 2查看 11K关注 0票数 18

我正在使用recycleview显示一个列表。我想知道如何显示不同类型的视图?与中一样,同一适配器中的不同ViewHolders

在我们使用getItemViewType()的简单列表视图中,recycleview有什么不同吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-20 22:06:49

要创建具有多种视图类型的RecyclerView,只需实现getItemViewType(),两个不同的ViewHolder,并处理onCreateViewHolder()bindViewHolder()中的viewType参数。

简短的示例:

代码语言:javascript
复制
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;
            ...
        }
    }
}
票数 38
EN

Stack Overflow用户

发布于 2017-11-04 06:34:19

编译'com.firebaseui:firebase-ui-database:1.0.1‘编译'com.firebaseui:firebase-ui-storage:1.0.1’将其放入gradle

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27041178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档