Android DataBinding in RecyclerView.ViewHolders mit verschiedenen Layouts

Ich versuche die Androids-Datenbindungsfunktion in einem neuen Projekt zu verwenden und bin bisher sehr zufrieden damit.

Aber jetzt bin ich auf ein Problem in meinem recycleviews viewholder gestoßen.

Mein Ansichtsinhaber verwendet verschiedene Layouts (basierend auf dem Ansichtstyp, wenn er erstellt wird)

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);
}

Also haben alle diese 3 Layouts die gleichen Ansichten, nur unterschiedlich angeordnet. Die Bindung des Modells an die Ansichten ist also dieselbe.

Immer, basierend auf diesen Layouts erstellt Android

ItemMediaHeaderBinding ItemMediaDefaultBinding ItemMediaSmallBinding

Was nervt, da ich dann 3 verschiedene ViewHolder-Klassen erstellen oder die richtige Bindungsklasse instanziieren müsste, indem ich überprüfe, welches Layout verwendet wird.

Gibt es eine bewährte Methode für diesen Fall? Gibt es eine Möglichkeit, einfach eine Superklasse für diese drei Bindungsklassen wie "ItemMediaBinding" zu erstellen?

Danke im Voraus

Antworten auf die Frage(6)

Ihre Antwort auf die Frage