Enlace de datos de Android en RecyclerView.ViewHolders con diferentes diseños

Estoy tratando de usar la función de enlace de datos de Android en un nuevo proyecto y hasta ahora estoy muy contento con él.

Pero ahora me encontré con un problema en mi visor de vistas de reciclaje.

Mi lector utiliza diferentes diseños (según el tipo de vista cuando se crea)

public MediaViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
{
     switch(viewType){
          case HEADER: 
             int layout = R.layout.item_media_header;
             break;
          case DEFAULT: 
             int layout = R.layout.item_media_default;
             break;
          case SMALL: 
             int layout = R.layout.item_media_small;
             break;
     }
     View v = LayoutInflater.from(parent.getContext()).inflate(layout, parent, false);
     return new MediaViewHolder(v);
}

Por lo tanto, todos esos 3 diseños tienen las mismas vistas, solo organizados de manera diferente. Por lo tanto, la unión del modelo a las vistas es la misma.

De todos modos, basado en esos diseños que Android crea

ItemMediaHeaderBindingItemMediaDefaultBindingItemMediaSmallBinding

Lo cual apesta, ya que me obligaría a crear 3 clases ViewHolder diferentes o crear una instancia de la clase de enlace correcta al verificar qué diseño se utiliza.

¿Existe una mejor práctica para este caso? ¿Existe la posibilidad de crear simplemente una superclase para esas tres clases de enlace como "ItemMediaBinding".

Gracias por adelantado.

Respuestas a la pregunta(3)

Su respuesta a la pregunta