Hace notificydatasetchanged llamada onCreateViewHolder al usar RecyclerView

Quiero usar un conmutador para alternar entre dos vistas diferentes pero usando el mismo RecyclerView. Básicamente, una vez que cambie, quiero que el adaptador RecyclerView recuerde onCreateViewHolder, pero esta vez usará un archivo de elemento de diseño diferente. ¿ notifydatasetchanged() que el adaptador se reconstruya? ¿O hay otra manera?

Muchas gracias de antemano.

4 Solutions collect form web for “Hace notificydatasetchanged llamada onCreateViewHolder al usar RecyclerView”

Necesitaba tener dos tipos en View s en mi Adapter RecyclerView , así, uno para el modo "regular" y uno para el modo de selección múltiple.

Por lo tanto, puede anular getItemViewType para forzar el adaptador a llamar a su onCreateViewHolder para todas las vistas.

Añadir esto al Adapter código:

 public void setActionMode(ActionMode actionMode) { this.actionMode = actionMode; notifyDataSetChanged(); } @Override public int getItemViewType(int position) { return (actionMode == null ? 0 : 1); } 

Añada esto al ViewHolder :

 @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view; if (viewType == 0) { view = inflater.inflate(R.layout.layout_1, parent, false); } else { view = inflater.inflate(R.layout.layout_2, parent, false); } ... } 

Puesto que usted devuelve un ViewType diferente cuando está en un ActionMode , el adaptador se ve obligado a tirar todas las vistas creadas, y volver a crear todo de nuevo.

Para eliminar y actualizar el diseño de RecyclerView, puede llamar al

 mRecyclerView.removeView(view); 

o

 mRecyclerView.removeViewAt(position); 

Después de eliminar el objeto en su conjunto de datos

NotifyDataSetChanged () llamada onBindViewHolder() cuando se utiliza RecyclerView

Sí, asumirá que su conjunto de datos actual no es válido y que necesitaría relais y volver a enlazar todos los diseños.

  • Android RecyclerView desplazamiento suave para ver que está animando su altura
  • ItemDecoration sobreescribir getItemOffsets () y animación
  • Establecer el intervalo de elementos en GridLayoutManager mediante SpanSizeLookup
  • RecyclerView: java.lang.IndexOutOfBoundsException: Inconsistencia detectada. Posición de artículo no válida
  • ¿Hay alguna forma de calcular la posición final de desplazamiento
  • Retos en RecyclerView de Android L
  • Cierre del cursor en onPostExecute no produce nada
  • RecyclerView: Animar el cambio de tamaño del elemento
  • Reciclador vista de la lista de desplazamiento vertical con fila horizontal desplazable
  • Error: no se puede encontrar la clase de símbolo RecyclerView
  • Cómo asignar una lista de lista a RecyclerView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.