Pull to refresh

Comments 4

Итоговый интерфейс достаточно сильно напоминает Epoxy от Airbnb. Потенциально ваше решение можно использовать для тех же целей — создания длинных экранов (не обязательно списковых) целиком в одном RecyclerView.

Первый пункт решается паттерном AdapterDelegate. Можно самописный, а можно и от Ханнеса Дорфмана. Это давно решенная проблема, непонятно, зачем велосипедить.
По второму пункту —


К примеру, если мы изменим одно поле у объекта из списка, то DiffUtil не отработает

Нужно всего лишь написать свой Callback, и всё отработает. Не понял вашей проблемы.


Плюс пара замечаний по коду. Single-Expression functions в основном нужны для сокращения кода и в ваших случаях указание типа явно всю идею ломает.


У вас неправильно написан холдер — в общем случае нельзя будет использовать общий RecycledViewPool для нескольких ресайклеров, что ухудшает переиспользование.


Объявлять проперти как функцию, а потом вызывать её через invoke — это какое-то отдельное извращение.

1. «Первый пункт решается паттерном AdapterDelegate». AdapterDelegate не сильно помогает решить проблему управления позицией элементов. У Ханнеса Дорфмана это не так заметно поскольку там используются однотипные списки, и я писал, почему это решение нам не совсем подошло.
2. «Нужно всего лишь написать свой Callback». В этом келбеке придется определить методы areItemsTheSame и areContentsTheSame для нормальной работы которых нужны будут старый и новый списки. Если мы изменим одно поле у объекта списка, то не сможем передать в келбек старый список для сравнения. Поэтому DiffUtil не отработает.
3. «общем случае нельзя будет использовать общий RecycledViewPool» — а это для данной статьи и не важно, основная ее задача показать как упростить работу со списком. Поэтому в примерах и представлены случаи с минимальным количеством кода.
4. По котлину замечания верные.
на правах оффтопа
Не первый раз вижу фото, в котором компьютерно-ориентированные специалисты работают в синей подсветке. Причем не только фото — даже в видео попадается время от времени. Это просто чтобы сделать красиво, или с такой подсветкой действительно работается легче?
Sign up to leave a comment.