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); ... } } 
  • Android -RecyclerView en kitkat
  • ¿La transición reversa reversa del elemento del androide sobre detrás después de cambio de la orientación?
  • Pasar la posición en el ListView al niño RecyclerView Adapter
  • Obtener el elemento visible en el centro de RecycleView al desplazarse
  • Recyclerview en un fragmento no muestra nada
  • Causa de NullPointerException android.support.v7.widget.RecyclerView.onMeasure
  • Marshmallow (23) + RecyclerView (23.1.0) el desplazamiento desordena el contenido de arriba después de eliminar el elemento (notifyItemRemoved)
  • Arrastrar y soltar vista fuera de Recyclerview
  • La creación de clase Pojo desde el cursor Sqlite está tomando demasiado tiempo
  • ¿Por qué ListView y RecyclerView son focusableInTouchMode?
  • Cómo agregar Android Support v7 bibliotecas en eclipse?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.