Ihor Martyniuk
эм... не вижу противоречия. Вью-холдер остается тупым. Но вместо одной вью, которая занимается задачами типа отобрози вот это состояние на элементе по такому индексу, появляется две вью. Одна умеет добавить\удалить итем, другая - отобразить состояние.
Обе работают как обычные вью.
Единственная сложность - делегирование onBind() и определение OnResume. Но это сложность конкретно моя. Т.К. я у себя принимаю за дефолт, что все View : LifecycleOwner.
При типичных attach()\detach() ее не должно возникать
ViewHolder должен уметь просто представить данные (готовые данные) в удобной пользователю форме. Адаптер тоже должен получать уже готовые данные. Если нужно, то ViewHolder может кинуть эвент, что на него где-то нажали. Этот эвент ты можешь обработать, где хочешь. По факту api у твоего списка должно быть такое: myAdapter.updateData(data). Если приходится накручивать какую-то сложную логику, то надо делать это со стороны. Инкапсулируй свой список в какой-нибудь контроллер и используй его. Но делать презентер для каждого вью холдера - это жестко. Хотя мб я чего-то не понимаюю