@geronix

Можно ли использовать один RecyclerView для нескольких списков?

Здравствуйте!

Разрабатываю приложение, в приложении будет пять разных списков. Как то не очень охота пилит под каждый список отдельный активити, фрагмент, RecyclerView. Введь они отличаются только адаптерами и разметкой для item-ов. Отсюда и возникла потребность запилить один экран(активити, фрагмент, RecyclerView) для списков, просто в него подставлять различные списки. Подскажите пожалуйста, как это можно реализовать? Можно ли вообще так делать? Может есть какие библиотеки которые упростят такую работу.
  • Вопрос задан
  • 804 просмотра
Решения вопроса 2
zagayevskiy
@zagayevskiy Куратор тега Android
Android developer at Yandex
Ну вообще да, для этого существует адаптер. Просто нужна логика, которая будет подсовывать нужный адаптер, и всё. Никакие дополнительные библиотеки не нужны для этого.
Кроме того, прошло то время, когда одна активити == один экран. Стоит пилить отдельные экраны на фрагментах.
Ну и стоит заранее подумать о том, что экраны в будущем могут различаться не только списками, и учесть это при разработке.
Ответ написан
Комментировать
kozinakoff
@kozinakoff
iOS-developer
Вот вам хороший пример: https://guides.codepath.com/android/Heterogenous-L...

Если коротко, то в своем адаптере нам надо перекрыть метод getItemViewType(), в котором нам надо будет определять тип текущего элемента (через instanceof например). Далее в методе onCreateViewHolder() нам на вход будет приходить наш viewType и мы сможем понять, какой ViewHolder использовать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы