А можно пример? Если не согласен, значит, я не понял.
https://gist.github.com/adolgiy/6a26ca03be5f2b33e17b56560409b73c
Накидал основные мысли.
- Показывать по-разному данные можно в ModelHolder#visit(Model) (закралась, что ты имел в виду «совсем по-разному» и в разных ViewHolder’ах по типу)
- Пока не получится передать параметры из адаптера в холдер (не придумалось)
- Не придумал, как сделать onCreateViewHolder пока. Возможно, если совместить идею делегата от Дорфмана (где они в списке лежали и по типу доставались), то получится реализовать создание. Если же сделать delegate#visit(holder, position, items), которые прокинет visit в ModelHolder#visit, то получится комбинация и без кастинга вообще. Только дабл диспатч и куча кода.