Cuando getItemCount y método getItemViewType se llaman en Recycler Adapter

Vi preguntas similares en stackoverflow pero no dan respuestas claras a mi pregunta. No lo marque como dublicate antes de leer mis preguntas completas. Vi este enlace, esto , y esto también. Gracias por dedicar su tiempo a leer esto.

Le di mis tres preguntas por debajo del código fuente, por favor, eche un vistazo a él.

Lo haré simple. Estoy intentando utilizar dos ViewHolder en el adaptador del reciclador que voy a utilizar en ViewPager para TabLayout. Ambos View Holder teniendo diferentes Xml y diferentes elementos (es decir, textview, etc vista de la imagen) Pero se golpeó con varias confusiones dentro de él.

Implementé mi clase de adaptador RecyclerView de la siguiente manera

public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { public class MainViewHolder extends RecyclerView.ViewHolder { public MainViewHolder(View v) { super(v); } class ViewHolder0 extends MainViewHolder { ... } class ViewHolder2 extends MainViewHolder { ... } @Override public int getItemViewType(int position) { /**** I don't know where and when this method will be called and what will be the value present in the variable "position" ****/ } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { switch (viewType) { case 0: return new ViewHolder0(...); case 2: return new ViewHolder2(...); ... } } public int getItemCount() { /**** I don't know where and when this method will be called and what will be the value present in the variable "position" ****/ } } 

Y mis preguntas son,

Q1. Cuándo y dónde se llama getViewType y qué será en la variable " position " y qué necesitamos devolver

Q2. Cuándo y dónde se llama getItemCount y cómo puedo devolver correctamente (porque estoy usando dos titulares de vista y cada uno tendrá diferente cuenta )

Q3. He creado la clase Recyclerview Adapter, pero dio un error que la clase RecyclerViewAdapter choca con la otra. (Ya que los estoy utilizando en la misma actividad para TabLayout, pensé que el error fue lanzado, ¿estoy correcto? O hay alguna manera de crear la clase de adaptador separado)

Si usted puede explicar todo el proceso de RecyclerViewAdapter, que sería genial 🙂 Pero por favor aclare mis confusiones anteriores.

Cualquier tipo de ayuda bienvenida, Gracias de antemano … 🙂

Q1) El método getViewType () se llamará antes del método onCreateViewHolder () cada vez que se crea su vista personalizada.

Necesita crear una lista con sus elementos de lista personalizada List<CustomItem> list=method_to_return_your_list() y cada uno de ellos con un método get getType () getter.

En su obtener getItemViewType ()

 public int getItemViewType(int position) { return list.get(position).getViewType(); /*this returns the view type of each element in the list*/ } 

Esto puede ser 0 o 1 teniendo en cuenta la instrucción switch case en el método onCreateViewHolder ()

Q2) El método getItemCount () debe devolver el número de elementos de la lista.

 public int getItemCount() { return list.size(); } 

Q3) No cree otro adaptador de reciclaje para la misma vista de reciclaje

También yo fogot. En lugar de crear nuevos ViewHolders, simplemente cambie el itemView en el titular de la vista como

 @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { switch (viewType) { case 0: return new ViewHolder(itemView0); case 2: return new ViewHolder(itemView1); ... } } 
  • ¿Cómo puedo hacer encabezados pegajosos en RecyclerView? (Sin librería externa)
  • SwipeRefreshLayout obstruye el desplazamiento de recycleview en el momento de desplazarse hacia arriba
  • Barra de desplazamiento no mostrada en RecyclerView
  • No contraer la barra de herramientas cuando RecyclerView se ajusta a la pantalla
  • Quiero que mi RecyclerView no recicle algunos artículos
  • Deslizar un elemento a la vez
  • Actualización parcial de RecyclerView.ViewHolder
  • RecyclerView desplazamiento laggy
  • SetLayoutManager NullPointException en RecyclerView
  • Diseño cuadrado en GridLayoutManager para RecyclerView
  • Cómo puedo crear un diseño nestedScroll como este?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.