Comments 9
Вброшу немного. Пробовал разные решения-обёртки над RecyclerView. Но это не таблетка счастья для меня. И вот почему:
1) Я не создаю по 5 экранов-списков на дню, чтобы меня это действительно мучало.
2) Я прекрасно знаю как заставить работать стандартный RecyclerView, а вот та обёртка которую использовал последний раз 2 месяца назад уже не помню… хочу ли вспоминать — не особо.
3) Бывает нужно сделать что-то хитрое, на что обёртка не способна… и вот ты либо выкидываешь полуготовый код и переходишь на обычный RecyclerView, или дорабатываешь обёртку(а тут уже п.2 снова)
1) Я не создаю по 5 экранов-списков на дню, чтобы меня это действительно мучало.
2) Я прекрасно знаю как заставить работать стандартный RecyclerView, а вот та обёртка которую использовал последний раз 2 месяца назад уже не помню… хочу ли вспоминать — не особо.
3) Бывает нужно сделать что-то хитрое, на что обёртка не способна… и вот ты либо выкидываешь полуготовый код и переходишь на обычный RecyclerView, или дорабатываешь обёртку(а тут уже п.2 снова)
Ну вот у меня в проекте как минимум 10ок таких простых ресайклеров. Тут многое зависит от проекта. Да есть конечно и сложные списки и там придется реализовывать руками все. А есть те кто пишут кучу однотипных адаптеров изо дня в день
Честно говоря, вы не объяснили, что вам не хватило в предыдущей реализации и что именно вы решили дописывать. Поэтому статья сразу становится непонятной.
Давно уже есть более или менее стандартное решение — Adapter Delegates.
Diff лучше считать на другом треде.
Все мы пишем приложения
Нет.
О чем вообще этот труд?
Несколько наблюдений:
1) Так как холдеры создаёт одна фабрика. то чем больше в проекте холдеров, тем больше будет разростаться этот when в ней
2) Использование layout id для определения какой холдер создать не даёт возможность переиспользовать лэйауты для разных холдеров, это конечно не так уж критично, но всё равно может вылезти боком.
Я вот поддержу zagayevskiy Стоит и правда посмотреть на Adapter Delegates. Решение существует уже довольно давно и позволяет разнести ответственность на делегаты, а не держать всё в одном месте.
P.S. вообще не понял зачем адаптер через lateinit сделан
1) Так как холдеры создаёт одна фабрика. то чем больше в проекте холдеров, тем больше будет разростаться этот when в ней
2) Использование layout id для определения какой холдер создать не даёт возможность переиспользовать лэйауты для разных холдеров, это конечно не так уж критично, но всё равно может вылезти боком.
Я вот поддержу zagayevskiy Стоит и правда посмотреть на Adapter Delegates. Решение существует уже довольно давно и позволяет разнести ответственность на делегаты, а не держать всё в одном месте.
P.S. вообще не понял зачем адаптер через lateinit сделан
Это же kotlin, в нем можно не создавать целый интерфейс для ClickListener, а написать что-то типа такого:
var itemClickListener: ((T)->Unin)? = null
Sign up to leave a comment.
Generic Recycler View или как не писать шаблонный код