#java #android #kotlin #android-recyclerview
#java #Android #kotlin #android-recyclerview
Вопрос:
Я хочу создать разные представления recycler в своем приложении. Все они очень похожи, поскольку каждое представление recycler использует одни и те же данные. Изменился только дизайн. Лучше использовать несколько адаптеров или просто создать один адаптер и позволить этому адаптеру обрабатывать разные представления?
Комментарии:
1. Возможно, вам нужно исследовать «viewType»
Ответ №1:
Как правило, лучше поддерживать ваш код чистым и простым. если у вас одинаковая функциональность с разными представлениями, лучше иметь один адаптер с разными типами представлений.
Ответ №2:
Это действительно зависит — у вас могут быть уникальные адаптеры для каждого представления, у вас может быть абстрактный класс с общей функциональностью, где вам нужно реализовать какой-то пользовательский метод отображения в каждом подклассе, или вы можете передать объект, который обрабатывает отображение вещей определенным образом — или у вас может быть просто один адаптер с некоторыми опциями, и в зависимости от опций, которые вы показываете, загружайте тот или иной макет, что угодно
Какой из них вы выберете, зависит от вашего кода — идея сокращения повторений заключается в том, чтобы упростить чтение и обслуживание. Если все представления довольно разные (не имеет значения, используют ли они одни и те же данные, это то, что вам нужно с этим делать), тогда один большой адаптер с множеством условных элементов для обработки их всех будет сложным — и с ним трудно работать, если вам нужно добавить другой тип отображения
Отдельные адаптеры проще всего, но это много потраченного впустую кода, если все они в основном повторяют одно и то же — и их сложнее поддерживать.
Лично мне нравится композиция, когда есть что-то, чему вы делегируете фактические функции отображения, поэтому есть один адаптер и один компонент презентации, которые вы передаете, чтобы это выглядело так или иначе. Но опять же, это может усложнять ситуацию
Не усложняйте себе жизнь! И не создавайте что-то адаптируемое только потому, что вы, возможно, захотите адаптировать его и повторно использовать в будущем — в большинстве случаев вы этого никогда не сделаете, поэтому не загружайте себя работой больше, чем вам нужно сделать прямо сейчас