Репозиторий к докладу "Лучшие практики RecyclerView"
Видео: https://www.youtube.com/watch?v=o8rzzQPOo2U
Слайды: https://speakerdeck.com/elvisfromsouth/luchshiie-praktiki-recyclerview
Каждый шаг - отдельная ветка в репозитории
- 00-init // Добавление основных сущностей (Модели, Активити, Разметки);
- 01-fingerprint // Создание дополнительной сущности-посредника
Fingerprint
, на которую будет делегировано манипулированиеViewHolder
для каждого отдельного элемента списка; - 02-bind_optimization // "Классический" пример оптимизации в вызове
onBindViewHolder(...)
; - 03-decorations // Пример использования
ItemDecorations
в вопросе выставления отступов у элементов; - 04-diffutil // Добавление
DiffUtil
, инструмента который высчитывает изменения в списке; - 05-listadapter // Добавление
ListAdapter
, адаптера который выполняет расчетDiffUtil
в другом потоке; - 06-payloads // Добавление расчета Payload для
DiffUtils
, для изменения части данных внутри элемента списка; - 07-custom_animations // Добавление кастомных анимаций для элементов списка;
- 08-swipe_to_delete // Испльзование
ItemTouchHelper
для реализации Swipe-To-Delete; - 09-concat_adapter // Использование
ConcatAdapter
; - 10-horizontal_items // Добавление горизонтального
RecyclerView
в демо; - 11-horizontal_fixed_width // Способ задать фиксированный размер элемента внутри горизинтального RecyclerView;
- 12-horizontal_save_state // Восстановления состояния вложенного горизонтального
RecyclerView
; - 13-horizontal_items_optimisations // Оптимизации для вложенных горизонтальных
RecyclerView
;