Содержание
- 2. План 4/44
- 3. Проблематика План 4/44
- 4. Проблематика RecyclerView и его компоненты План 4/44
- 5. Проблематика RecyclerView и его компоненты Распространенные ошибки План 4/44
- 6. Проблематика tinkoff.ru
- 7. Item списка 3/44
- 8. Item списка 3/44
- 9. Item списка 3/44
- 10. ScrollView 3/44
- 11. ScrollView 3/44
- 12. Минимум знаний Быстрая реализация Менеджер доволен (мало элементов) ScrollView. Достоинства 4/44
- 13. Очень медленный Memory Overflow Менеджер недоволен (много элементов) ScrollView. Недостатки 4/44
- 14. ListView tinkoff.ru
- 15. ListView Создает только те элементы, которые мы видим Концепция переиспользования
- 16. Отображение Скролл Clicks Структура ListView 4/44 ListView Создает Наполняет Adapter
- 17. ListView Adapter 3/44
- 18. ListView Adapter 3/44
- 19. ListView Adapter 3/44
- 20. ListView Adapter 3/44
- 21. ListView Adapter 3/44
- 22. ListView Adapter 3/44
- 23. ViewHolder 3/44
- 24. ViewHolder 3/44
- 25. ViewHolder 3/44
- 26. ViewHolder 3/44
- 27. ViewHolder 3/44
- 28. Концепция переиспользования Паттерн Adapter Паттерн ViewHolder ListView. Достоинства 4/44
- 29. Не умеет «из коробки» обрабатывать сложные жесты Мало вариантов размещения элементов Тяжело делать красивые анимации …
- 30. tinkoff.ru
- 31. RecyclerView tinkoff.ru
- 32. Решает проблемы ListView Состоит из компонент Большие возможности RecyclerView 4/44
- 33. LayoutManager Adapter Компоненты RecyclerView 4/44 Основные ItemDecorator ItemTouchHelper ItemAnimator RecycledViewPool Вспомогательные
- 34. RecyclerView.Adapter tinkoff.ru
- 35. RecyclerView.Adapter API 4/44
- 36. Создание элемента RecyclerView.Adapter API 4/44
- 37. Создание элемента Количество элементов RecyclerView.Adapter API 4/44
- 38. Создание элемента Количество элементов Наполнение элемента данными RecyclerView.Adapter API 4/44
- 39. Создание элемента Количество элементов Наполнение элемента данными Тип элемента (опционально) RecyclerView.Adapter API 4/44
- 40. RecyclerView.Adapter 3/44
- 41. RecyclerView.Adapter 3/44
- 42. RecyclerView.Adapter 3/44
- 43. RecyclerView.Adapter 3/44
- 44. RecyclerView.ViewHolder 3/44
- 45. Хранит View элемента списка (holder.itemView) Позиция элемента Свойства переиспользуемости (holder.isRecycleable) itemId RecyclerView.ViewHolder 4/44
- 46. Notify* Api tinkoff.ru
- 47. Уведомляет RecyclerView об изменении данных RecyclerView.Adapter NotifyApi 4/44
- 48. Уведомляет RecyclerView об изменении данных notifyDataSetChanged() RecyclerView.Adapter NotifyApi 4/44
- 49. Уведомляет RecyclerView об изменении данных notifyDataSetChanged() RecyclerView.Adapter NotifyApi 4/44
- 50. Уведомляет RecyclerView об изменении данных notifyDataSetChanged() notifyItemChanged(), notifyItemRemoved(), notifyItemInsterted(), notifyItemMoved() RecyclerView.Adapter NotifyApi 4/44
- 51. RecyclerView.Adapter NotifyApi 4/44 Красивая анимация при удалении элемента notifyItemRemoved(index: Int)
- 52. Красивая анимация Меньше созданий и заполнений ViewHolder’ов Используйте notifyDataSetChanged в крайнем случае RecyclerView.Adapter NotifyApi 4/44
- 53. RecyclerView.Adapter NotifyApi 4/44 Анимации изменения нет notifyDataSetChanged()
- 54. Элемент ассоциирован с уникальным идентификатором Adapter.getItemId(default = NO_ID) RecyclerView.Adapter StableIDs 4/44
- 55. RecyclerView.Adapter StableIDs 4/44 Красивая анимация при удалении элемента notifyDataSetChanged()
- 56. Элементы не пересоздаются без необходимости Элементы анимируются даже при вызове notifyDataSetChanged()! Преимущества setHasStableIds(true) 4/44
- 57. Payloads 4/44
- 58. Данные для частичного обновления элемента Payloads 4/44
- 59. Данные для частичного обновления элемента Уведомление об изменении элемента с данными Payloads 4/44
- 60. Данные для частичного обновления элемента Уведомление об изменении элемента с данными Обработка payload Payloads 4/44
- 61. Payloads 4/44
- 62. RecyclerView.ViewHolder Lifecycle 4/44
- 63. RecyclerView.ViewHolder Lifecycle 4/44 Элемент появляется на экране
- 64. RecyclerView.ViewHolder Lifecycle 4/44 Элемент появляется на экране Элемент ушел с экрана
- 65. RecyclerView.ViewHolder Lifecycle 4/44 Элемент появляется на экране Элемент ушел с экрана Элемент сейчас будет переиспользован
- 66. ViewHolder Notify* Api Payloads Lifecycle Резюме 4/44
- 67. LayoutManager tinkoff.ru
- 68. LayoutManager 4/44
- 69. Размещение элементов LayoutManager 4/44
- 70. Размещение элементов Скроллинг LayoutManager 4/44
- 71. Размещение элементов Скроллинг Accessibility LayoutManager 4/44
- 72. Размещение элементов Скроллинг Accessibility Фокусировка LayoutManager 4/44
- 73. LinearLayoutManager 4/44
- 74. GridLayoutManager 4/44
- 75. GridLayoutManager 4/44
- 76. LinearLayoutManager 4/44
- 77. ItemAnimator tinkoff.ru
- 78. Работает со стандартными LayoutManager’ами Поддерживает простые анимации для нестандартных Основа для кастомных аниматоров DefaultItemAnimator 4/44
- 79. Fade In & Fade Out Cross-fade Translate Анимации по умолчанию 4/44
- 80. ItemDecorator tinkoff.ru
- 81. Добавление отступов Рисование позади и поверх элемента Можно добавлять несколько декораторов ItemDecorator 4/44
- 82. Добавление отступов 4/44
- 83. Добавление отступов 4/44
- 84. Добавление отступов 4/44
- 85. Добавление отступов 4/44
- 86. Добавление отступов 4/44
- 87. Реальное 4/44
- 88. Рисование позади элемента 4/44
- 89. Рисование позади элемента 4/44
- 90. Рисование позади элемента 4/44
- 91. Рисование позади элемента 4/44
- 92. Рисование позади элемента 4/44
- 93. Рисование поверх элемента 4/44
- 94. Рисование поверх элемента 4/44
- 95. Рисование поверх элемента 4/44
- 96. Рисование поверх элемента 4/44
- 97. Рисование поверх элемента 4/44
- 98. Рисование поверх элемента 4/44
- 99. Рисование поверх элемента 4/44
- 100. Ошибки 4/44
- 101. Ошибки 4/44
- 102. Ошибки 4/44
- 103. getAdapterPosition vs getLayoutPosition 4/44
- 104. getAdapterPosition vs getLayoutPosition 4/44 move(0, 3)
- 105. getAdapterPosition vs getLayoutPosition 4/44 move(0, 3)
- 106. getAdapterPosition vs getLayoutPosition 4/44 move(0, 3) onLayout()
- 107. getAdapterPosition vs getLayoutPosition 4/44 move(0, 3) onLayout()
- 108. getAdapterPosition() при работе с данными getLayoutPosition() при работе с отрисовкой RecyclerView.ViewHolder Position 4/44
- 109. Не выделяйте память (те же правила, что и в onDraw) Не взаимодействуйте с адаптером Для разделителей
- 110. ItemTouchHelper tinkoff.ru
- 111. ItemTouchHelper Drag and Drop Swipe to dismiss
- 112. ItemTouchHelper 3/44
- 113. ItemTouchHelper 3/44
- 114. ItemTouchHelper 3/44
- 115. ItemTouchHelper 3/44
- 116. ItemTouchHelper 3/44
- 117. ItemTouchHelper 3/44
- 118. ItemTouchHelper 3/44
- 119. SimpleCallback 3/44
- 120. SimpleCallback 3/44
- 121. SimpleCallback 3/44
- 122. Настройка отрисовки 3/44
- 123. Настройка отрисовки 3/44
- 124. Настройка отрисовки 3/44
- 125. Настройка отрисовки 3/44
- 126. Настройка отрисовки 3/44
- 127. Настройка отрисовки 3/44
- 128. Настройка отрисовки 3/44
- 129. Настройка отрисовки 3/44
- 130. Настройка отрисовки 3/44
- 131. Swipe to dismiss & Drag and Drop Поддержка любого LayoutManager’а Гибкая настройка ItemTouchHelper 4/44
- 132. RecycledViewPool tinkoff.ru
- 133. Хранит переиспользуемые ViewHolder’ы RecycledViewPool 4/44
- 134. Хранит переиспользуемые ViewHolder’ы По умолчанию имеет размер 5 элементов RecycledViewPool 4/44
- 135. Хранит переиспользуемые ViewHolder’ы По умолчанию имеет размер 5 элементов Может переиспользоваться различными Recycler’ами RecycledViewPool 4/44
- 136. RecycledViewPool Переиспользуем вьюхолдеры для двух ресайклеров
- 137. RecyclerView. Итоги tinkoff.ru
- 138. LayoutManager Adapter Компоненты RecyclerView 4/44 Основные
- 139. LayoutManager Adapter Компоненты RecyclerView 4/44 Основные ItemDecorator ItemTouchHelper ItemAnimator RecycledViewPool Вспомогательные
- 140. Обзор ошибок и советы tinkoff.ru
- 141. Обработка нажатий 4/44
- 142. Обработка нажатий 4/44
- 143. Обработка нажатий 4/44
- 144. Устанавливаем флаг, если размер списка не зависит от количества элементов 2 вызова onLayout() вместо 3’х setHasFixedSize(true)
- 145. DiffUtils tinkoff.ru
- 146. Позволяет не вызывать руками notifyItem… Сравнивает 2 списка: старый и новый Может работать асинхронно DiffUtil 4/44
- 147. DiffUtil 4/44
- 148. DiffUtil 4/44
- 149. DiffUtil 4/44
- 150. RecyclerView.ViewHolder 4/44 LayoutManager RecyclerView Cache Adapter RecycledPool
- 151. RecyclerView.ViewHolder 4/44 LayoutManager RecyclerView Cache Adapter RecycledPool getViewForPosition
- 152. RecyclerView.ViewHolder 4/44 LayoutManager RecyclerView Cache Adapter RecycledPool getViewForPosition getViewForPosition
- 153. RecyclerView.ViewHolder 4/44 LayoutManager RecyclerView Cache Adapter RecycledPool getViewForPosition getViewForPosition
- 154. RecyclerView.ViewHolder 4/44 LayoutManager RecyclerView Cache Adapter RecycledPool getViewForPosition getViewForPosition
- 155. RecyclerView.ViewHolder 4/44 LayoutManager RecyclerView Cache Adapter RecycledPool getViewForPosition getViewForPosition getViewType
- 156. RecyclerView.ViewHolder 4/44 LayoutManager RecyclerView Cache Adapter RecycledPool getViewForPosition getViewForPosition getViewType
- 157. RecyclerView.ViewHolder 4/44 LayoutManager RecyclerView Cache Adapter RecycledPool getViewForPosition getViewForPosition getViewType getViewHolderByType
- 158. RecyclerView.ViewHolder 4/44 LayoutManager RecyclerView Cache Adapter RecycledPool getViewForPosition getViewForPosition getViewType getViewHolderByType
- 159. RecyclerView.ViewHolder 4/44 LayoutManager RecyclerView Cache Adapter RecycledPool getViewForPosition getViewForPosition getViewType getViewHolderByType createViewHolder
- 160. RecyclerView.ViewHolder 4/44 LayoutManager RecyclerView Cache Adapter RecycledPool getViewForPosition getViewForPosition getViewHolderByType
- 161. RecyclerView.ViewHolder 4/44 LayoutManager RecyclerView Cache Adapter RecycledPool getViewForPosition getViewForPosition bindViewHolder getViewHolderByType
- 162. RecyclerView.ViewHolder 4/44 LayoutManager RecyclerView Cache Adapter RecycledPool getViewForPosition getViewForPosition bindViewHolder getViewHolderByType
- 163. RecyclerView.ViewHolder 4/44 LayoutManager RecyclerView Cache Adapter RecycledPool
- 164. RecyclerView.ViewHolder 4/44 LayoutManager RecyclerView Cache Adapter RecycledPool addView
- 165. RecyclerView.ViewHolder 4/44 LayoutManager RecyclerView Cache Adapter RecycledPool addView onViewAttachedToWindow
- 166. RecyclerView.ViewHolder 4/44 LayoutManager RecyclerView Cache Adapter RecycledPool
- 167. RecyclerView.ViewHolder 4/44 LayoutManager RecyclerView Cache Adapter RecycledPool removeAndRecycleView
- 168. RecyclerView.ViewHolder 4/44 LayoutManager RecyclerView Cache Adapter RecycledPool removeAndRecycleView onViewDetachedFromWindow
- 169. RecyclerView.ViewHolder 4/44 LayoutManager RecyclerView Cache Adapter RecycledPool removeAndRecycleView
- 170. RecyclerView.ViewHolder 4/44 LayoutManager RecyclerView Cache Adapter RecycledPool removeAndRecycleView isValid?
- 171. RecyclerView.ViewHolder 4/44 LayoutManager RecyclerView Cache Adapter RecycledPool removeAndRecycleView isValid? recycle
- 173. Скачать презентацию