Skip to content Skip to sidebar Skip to footer

Recyclerview Show Different View Types

I'm using the recycleview to show a list. I was wondering how do we show different types of views? As in, different ViewHolders int the same adapter In the simple listview we used

Solution 1:

To create RecyclerView with multiple view type just implement getItemViewType(), two different ViewHolders and take care of the viewType parameter in onCreateViewHolder() and bindViewHolder().

Short example:

publicclassMultipleViewTypesAdapterextendsRecyclerView.Adapter<RecyclerView.ViewHolder> {

    privatestaticfinalintVIEW_TYPE_FIRST=0;
    privatestaticfinalintVIEW_TYPE_SECOND=1;

    classViewHolderFirstextendsRecyclerView.ViewHolder {
        ...
    }

    classViewHolderSecondextendsRecyclerView.ViewHolder {
        ...
    }

    @OverrideintgetItemViewType(int position) {
        return position % 2;
    }

    @Overridepublic RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        switch (viewType) {
            case VIEW_TYPE_FIRST: returnnewViewHolderFirst(...);
            case VIEW_TYPE_SECOND: returnnewViewHolderSecond(...);
            ...
        }
    }

    @OverridepublicvoidbindViewHolder(RecyclerView.ViewHolder holder, int position) {
        switch (getItemViewType(position)) {
            case VIEW_TYPE_FIRST:
                ViewHolderFirstviewHolderFirst= (ViewHolderFirst)holder;
                ...
                break;
            case VIEW_TYPE_SECOND:
                ViewHolderSecondviewHolderSecond= (ViewHolderSecond)holder;
                ...
                break;
            ...
        }
    }
}

Solution 2:

compile 'com.firebaseui:firebase-ui-database:1.0.1' compile 'com.firebaseui:firebase-ui-storage:1.0.1' put that in gradle

Post a Comment for "Recyclerview Show Different View Types"