【问题标题】:Recyclerview show different view typesRecyclerview 显示不同的视图类型
【发布时间】:2014-11-20 13:48:14
【问题描述】:

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

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

【问题讨论】:

标签: android android-recyclerview


【解决方案1】:

要创建具有多个视图类型的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;
            ...
        }
    }
}

【讨论】:

  • onCreaeViewHolder 中的默认情况您会返回什么?
  • @GokhanArik 你选择。我认为最好的选择是返回空适配器,因为用于填充适配器的列表可能是空的。
  • Google 建议您在没有要显示的内容时显示图片或有用的文字。关注空状态的material design spec 了解更多详情。
【解决方案2】:

编译'com.firebaseui:firebase-ui-database:1.0.1' compile 'com.firebaseui:firebase-ui-storage:1.0.1' 把它放在 gradle 中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-09
    • 1970-01-01
    • 2021-04-13
    相关资源
    最近更新 更多