#RecyclerView
RecyclerView.ItemDecoration: используем по максимуму
RecyclerView есть в любом нативном Android приложении. В статье делятся опытом применения
RecyclerView.ItemDecoration: используем по максимуму
RecyclerView есть в любом нативном Android приложении. В статье делятся опытом применения
ItemDecoration
. С помощью этого класса можно решить много задач интересным образом и более эффективно чем через ViewХабр
RecyclerView.ItemDecoration: используем по максимуму
Привет, дорогой читатель Хабра. Меня зовут Олег Жило, последние 4 года я Android-разработчик в Surf . За это время я поучаствовал в разного рода крутых проектах, но и с легаси-кодом поработать...
#RecyclerView #Performance
Recycler view, power of asynchronous view holders creation
Оптимизация скорости работы RecyclerView с помощью создания ViewHolder в фоновом потоке.
Recycler view, power of asynchronous view holders creation
Оптимизация скорости работы RecyclerView с помощью создания ViewHolder в фоновом потоке.
Medium
Recycler view, power of asynchronous view holders creation
The easy way to optimize your lists
#RecyclerView
Делаем код в адаптере чище с помощью MergeAdapter
В следующей Верси RecyclerView нас ждет новый адаптер - MergeAdapter, переименованный в ConcatAdapter. Задача адаптера объединять в себе контент из других адаптеров
В статье приводится пример задачи, решаемой с помощью ConcatAdapter. Такое решение позволяет сделать код чище, а еще добавить Header и Footer.
Делаем код в адаптере чище с помощью MergeAdapter
В следующей Верси RecyclerView нас ждет новый адаптер - MergeAdapter, переименованный в ConcatAdapter. Задача адаптера объединять в себе контент из других адаптеров
В статье приводится пример задачи, решаемой с помощью ConcatAdapter. Такое решение позволяет сделать код чище, а еще добавить Header и Footer.
Хабр
Делаем код в адаптере чище с помощью MergeAdapter
Надоели перегруженные и сложные адаптеры в вашем проекте, напоминающие картинку ниже? Каждый раз, при добавлении нового типа ячейки хочется переписать адаптер дл...
#RecyclerView
Custom ItemDecoration
Наверняка вы знаете что разделять item'ы в RecyclerView путём добавления в их xml специального view-разделителя - это очень плохая практика. Для этих целей существует такой инструмент как ItemDecoration.
Благодаря тому что мы можем наследоваться от этой абстракции у нас открываются возможности разнообразной реализации, например:
👉 Убрать разделитель для последнего item'а
👉 Сделать специальные разделители для определённого ViewType
👉 Показывать уникальные разделители для item'ов на определённых позициях.
Автор подробно рассматривает все случаи кастомных декораций и даёт примеры кода для реализации в своих проектах
Custom ItemDecoration
Наверняка вы знаете что разделять item'ы в RecyclerView путём добавления в их xml специального view-разделителя - это очень плохая практика. Для этих целей существует такой инструмент как ItemDecoration.
Благодаря тому что мы можем наследоваться от этой абстракции у нас открываются возможности разнообразной реализации, например:
👉 Убрать разделитель для последнего item'а
👉 Сделать специальные разделители для определённого ViewType
👉 Показывать уникальные разделители для item'ов на определённых позициях.
Автор подробно рассматривает все случаи кастомных декораций и даёт примеры кода для реализации в своих проектах
#RecyclerView
How to Cook the 60 FPS RecyclerView?
Советы как сделать работу вашего RecyclerView максимально быстрой и плавной:
👉 Максимально простая иерархия View. И плоская
👉 Не стесняйтесь прибегать к Custom View, чтобы сделать иерархию плоской
👉 Большое количество уникальных типов элементов негативно влияет сна производительность
👉 Используйте оптимизации RecyclerView: DiffUtils, setHasFixedSize(), setItemViewCacheSize(), setRecycledViewPool()
How to Cook the 60 FPS RecyclerView?
Советы как сделать работу вашего RecyclerView максимально быстрой и плавной:
👉 Максимально простая иерархия View. И плоская
👉 Не стесняйтесь прибегать к Custom View, чтобы сделать иерархию плоской
👉 Большое количество уникальных типов элементов негативно влияет сна производительность
👉 Используйте оптимизации RecyclerView: DiffUtils, setHasFixedSize(), setItemViewCacheSize(), setRecycledViewPool()
#Производительность #UI #RecyclerView
Improve UI Performance with Async RecyclerView Layout Loading
История оптимизации производительности RecyclerView с использованием AsyncLayoutInflater, который переносит парсинг XML в View на фоновый поток. Результаты этой оптимизации и как ее реализовывали в статье.
Improve UI Performance with Async RecyclerView Layout Loading
История оптимизации производительности RecyclerView с использованием AsyncLayoutInflater, который переносит парсинг XML в View на фоновый поток. Результаты этой оптимизации и как ее реализовывали в статье.
#RecyclerView
Get ahead using headers in RecyclerView
Руководство по добавлению Header-ов в списках на основе RecyclerView
Get ahead using headers in RecyclerView
Руководство по добавлению Header-ов в списках на основе RecyclerView
This media is not supported in your browser
VIEW IN TELEGRAM
#Motionlayout #RecyclerView
MotionLayout + RecyclerView = красивые анимированные списки
Прекрасная и простая демонстрация возможностей MotionLayout для создания красивых анимаций в списках
MotionLayout + RecyclerView = красивые анимированные списки
Прекрасная и простая демонстрация возможностей MotionLayout для создания красивых анимаций в списках
#AndroidBroadcast #RecyclerView #ЛучшиеПрактики
🔴 Лучшие практики RecyclerView
Стартуем прямой эфир в котором обсуждаем все лучшие практики и оптимизации скорости работы RecyclerView - компонент, который является неотъемлемой частью любого современного Android приложения!
🔴 Лучшие практики RecyclerView
Стартуем прямой эфир в котором обсуждаем все лучшие практики и оптимизации скорости работы RecyclerView - компонент, который является неотъемлемой частью любого современного Android приложения!
#recyclerview
Фантастические RecyclerView.ViewHolder и где они создаются
Оптимизация RecyclerView с помощью создания View для ViewHolder заранее для множество viewType и библиотека на основе решения из статьи - PrefetchViewPool
Фантастические RecyclerView.ViewHolder и где они создаются
Оптимизация RecyclerView с помощью создания View для ViewHolder заранее для множество viewType и библиотека на основе решения из статьи - PrefetchViewPool
#recyclerview
RecyclerView Adapter in Android, сделай быстрее и проще
Еще одна пуля сделать быстрее работу с RecyclerView - FastAdapter
RecyclerView Adapter in Android, сделай быстрее и проще
Еще одна пуля сделать быстрее работу с RecyclerView - FastAdapter
#jetpackupdate #jetpack
Обновление Android Jetpack от 6 апреля 2022
👉 AppCompat 1.5.0-alpha01: больше поддержки compound drawable tinting, улучшение поддержки Android 13
👉 Много багфикса в Camera 1.1.0-beta03
👉 Fragment 1.5.0-alpha05: работа с меню помечена как deprecated
👉 Важный багфикс в Navigation 2.4.2
RecyclerView 1.3.0-alpha02: интеграция с AndroidX PoolingContainer для лучшего показа Compose внутри элементов
👉 SavedState 1.2.0-alpha02: начата миграция либы на Kotlin
👉 WorkManager 2.8.0-alpha02: создавать Constraints из Kotlin стало удобнее. Не Builder единым
Много мелких улучшений, подробности о которых вы сможете найти здесь
Обновление Android Jetpack от 6 апреля 2022
👉 AppCompat 1.5.0-alpha01: больше поддержки compound drawable tinting, улучшение поддержки Android 13
👉 Много багфикса в Camera 1.1.0-beta03
👉 Fragment 1.5.0-alpha05: работа с меню помечена как deprecated
👉 Важный багфикс в Navigation 2.4.2
RecyclerView 1.3.0-alpha02: интеграция с AndroidX PoolingContainer для лучшего показа Compose внутри элементов
👉 SavedState 1.2.0-alpha02: начата миграция либы на Kotlin
👉 WorkManager 2.8.0-alpha02: создавать Constraints из Kotlin стало удобнее. Не Builder единым
Много мелких улучшений, подробности о которых вы сможете найти здесь
Jetpack Compose Interop: Using Compose in a RecyclerView (10 мин)
RecyclerView 1.3.0 улучшает производительность использования Compose (нужна версия 1.2.0) в качестве элементов списка. Зачем? Да потому что LazyList огорчает производительностью и возможностями. В статье автор разбирает в чем суть этих изменений и прошлые рекомендации от команды.
#compose #recyclerview #performance
RecyclerView 1.3.0 улучшает производительность использования Compose (нужна версия 1.2.0) в качестве элементов списка. Зачем? Да потому что LazyList огорчает производительностью и возможностями. В статье автор разбирает в чем суть этих изменений и прошлые рекомендации от команды.
#compose #recyclerview #performance
Обновление Android Jetpack от 8 марта 2023
Lifecycle 2.6.0
👉 Метод LiveData.isInitialized() позволит проверить задавалось ли значение в LiveData
👉 Стабильный collectAsStateWithLifecycle() в Compose. Подробности тут
👉 Методы Lifecycle.launchWhenX теперь deprecated. Используйте Lifecycle.repeatOnLifecycle
👉 Множество классов переписали на Kotlin
RecyclerView 1.3.0
👉 Улучшение производительности при работе с Compose
Что еще:
👉 Первая RC Jetpack Compose 1.4
👉 Исправление багов
👉 Поддержка Android 14
#jetpack #jetpackupdate
Lifecycle 2.6.0
👉 Метод LiveData.isInitialized() позволит проверить задавалось ли значение в LiveData
👉 Стабильный collectAsStateWithLifecycle() в Compose. Подробности тут
👉 Методы Lifecycle.launchWhenX теперь deprecated. Используйте Lifecycle.repeatOnLifecycle
👉 Множество классов переписали на Kotlin
RecyclerView 1.3.0
👉 Улучшение производительности при работе с Compose
Что еще:
👉 Первая RC Jetpack Compose 1.4
👉 Исправление багов
👉 Поддержка Android 14
#jetpack #jetpackupdate
Обновление Android Jetpack от 24 мая 2023
👉 WebKit 1.7.0: поддержка drag & drop картинок, текста и ссылок и возможность задания базовой директории для сохранения данных
👉 Navigation 2.7.0-alpha01: поддержка анимаций переходов на основе AnimatedContent из Compose
👉 Paging 3.2.0-alpha06: упростили основное и тестовое API
👉 Важные фиксы в RecyclerView Version 1.3.1-rc01
👉 Первая beta Compose 1.5.0
👉 CameraX 1.3.0-alpha07 добавила возможность задания частоты кадров съемки видео
#jetpack #jetpackupdate
👉 WebKit 1.7.0: поддержка drag & drop картинок, текста и ссылок и возможность задания базовой директории для сохранения данных
👉 Navigation 2.7.0-alpha01: поддержка анимаций переходов на основе AnimatedContent из Compose
👉 Paging 3.2.0-alpha06: упростили основное и тестовое API
👉 Важные фиксы в RecyclerView Version 1.3.1-rc01
👉 Первая beta Compose 1.5.0
👉 CameraX 1.3.0-alpha07 добавила возможность задания частоты кадров съемки видео
#jetpack #jetpackupdate
Обновление Android Jetpack:
🔥 Paging 3.2.0: стабильная поддержка Compose, API для тестирования пагинации, улучшение логов и др.
👉 Фикс багов в Preference 1.2.1, RecyclerView 1.3.1 (для Compose), Fragment 1.6.1
👉 Lifecycle 2.7.0-alpha01: получение обновлений состояние через Flow и интеграция с Compose
👉 Work 2.9.0-alpha02: получение причины почему Work был остановлен
👉 Очень много библиотека перешли в стадию RC
👉 Jetpack Glance (App Widget на Compose) готовится к релизу
#jetpackupdate #jetpack
🔥 Paging 3.2.0: стабильная поддержка Compose, API для тестирования пагинации, улучшение логов и др.
👉 Фикс багов в Preference 1.2.1, RecyclerView 1.3.1 (для Compose), Fragment 1.6.1
👉 Lifecycle 2.7.0-alpha01: получение обновлений состояние через Flow и интеграция с Compose
👉 Work 2.9.0-alpha02: получение причины почему Work был остановлен
👉 Очень много библиотека перешли в стадию RC
👉 Jetpack Glance (App Widget на Compose) готовится к релизу
#jetpackupdate #jetpack
👉 Benchmark 1.2.0. Baseline Profile Gradle Plugin, улучшения Macrobenchmark и Microbenchmark
👉 Room 2.6.0. Поддержка KSP
👉 CameraX 1.3.0. Запись с 2 камер, 10-bit видео, выбор разрешения съемки и много других улучшений
👉 Sqlite 2.4.0. Багфикс
👉 RecyclerView 1.3.2. Багфикс анимаций
#jetpack #jetpackupdate
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Surf рассказывает сделали редизайн навигации главного экрана в приложении Burger King, где надо было сделать двухуровневые табы
#recyclerview #android
Please open Telegram to view this post
VIEW IN TELEGRAM
Вышел RecyclerView 1.4.0 c поддержкой Android 15, а именно добавили работу с адаптивной частотой обновления экранов.
Также появилось API
#android #jetpack #recyclerview #jetpackupdate
Также появилось API
RecyclerView.LayoutManager.isLayoutReversed
#android #jetpack #recyclerview #jetpackupdate
Также сегодня вышли beta версии Jetpack Navigation 2.9, Jetpack Lifecycle 2.9 (lifecycle, viewmodel), Saved State 1.3, Jetpack Activity 1.11, RecyclerView-Selection Version 1.2.0
#android #jetpack #jetpackupdate
#android #jetpack #jetpackupdate