Связывание данных Android в RecyclerView.ViewHolders с различными макетами

Я пытаюсь использовать функцию привязки данных андроидов в новом проекте и до сих пор очень доволен этим.

Но теперь я столкнулся с проблемой в моем окне просмотра.

Мой видоискатель использует разные макеты (в зависимости от вида, когда он создается)

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

Таким образом, все эти 3 макета имеют одинаковые виды, но расположены по-разному. Так что привязка модели к представлениям одинакова.

В любом случае, на основе этих макетов Android создает

ItemMediaHeaderBindingItemMediaDefaultBindingItemMediaSmallBinding

Какой отстой, так как это заставило бы меня создать 3 разных класса ViewHolder или создать экземпляр правильного связующего класса, проверив, какой макет используется.

Есть ли лучшая практика для этого случая? Есть ли возможность просто создать суперкласс для тех трех классов привязки, как "ItemMediaBinding".

Заранее спасибо.

Ответы на вопрос(3)

Ваш ответ на вопрос