RecyclerView displays a list. It is necessary that, under one condition, one item is displayed, and with another - another. How to implement it.
1 answer
Use getItemViewType() . for example
public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { class ViewHolder0 extends RecyclerView.ViewHolder { ... } class ViewHolder2 extends RecyclerView.ViewHolder { ... } private static final int TYPE_IMAGE = 0; private static final int TYPE_GROUP = 1; @Override public int getItemViewType(int position) { int viewType; if (groups.get ( position ).getImagePath () != null ) { viewType = TYPE_IMAGE; } else { viewType = TYPE_GROUP; } return viewType; } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { switch (viewType) { case 0: return new ViewHolder0(...); case 2: return new ViewHolder2(...); ... } } } - And how in onBindViewHolder to determine which ViewHolder to use? - user186301
|