Подтвердить что ты не робот

Recycleview показывает различные типы просмотров

Я использую recycleview для отображения списка. Мне было интересно, как мы показываем разные типы просмотров? Как и в, различные ViewHolders внутри одного и того же адаптера

В простом списке мы использовали getItemViewType(), что-то другое в recycleview?

4b9b3361

Ответ 1

Чтобы создать RecyclerView с несколькими типами представления, просто реализуйте getItemViewType(), два разных ViewHolder и позаботьтесь о параметре viewType в onCreateViewHolder() и bindViewHolder().

Краткий пример:

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;
            ...
        }
    }
}

Ответ 2

compile 'com.firebaseui: firebase-ui-database: 1.0.1'   compile 'com.firebaseui: firebase-ui-storage: 1.0.1' поместите это в gradle