Recyclerview
В этой таблице перечислены все артефакты, входящие в группу androidx.recyclerview .
| Артефакт | Стабильный релиз | Предварительная версия для выпуска | Бета-версия | Альфа-версия |
|---|---|---|---|---|
| recyclerview | 1.4.0 | - | - | - |
| recyclerview-selection | 1.2.0 | - | - | 1.3.0-alpha01 |
Объявление зависимостей
Чтобы добавить зависимость от RecyclerView, необходимо добавить репозиторий Google Maven в ваш проект. Для получения дополнительной информации ознакомьтесь с информацией в репозитории Google Maven .
Добавьте зависимости для необходимых артефактов в файл build.gradle вашего приложения или модуля:
Groovy
dependencies { implementation "androidx.recyclerview:recyclerview:1.4.0" // For control over item selection of both touch and mouse driven selection implementation "androidx.recyclerview:recyclerview-selection:1.2.0" }
Kotlin
dependencies { implementation("androidx.recyclerview:recyclerview:1.4.0") // For control over item selection of both touch and mouse driven selection implementation("androidx.recyclerview:recyclerview-selection:1.2.0") }
Для получения дополнительной информации о зависимостях см. раздел «Добавление зависимостей сборки» .
Обратная связь
Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав кнопку со звездочкой.
Для получения более подробной информации см. документацию по системе отслеживания ошибок .
Версия 1.4
Версия 1.4.0
15 января 2025 г.
Выпущена версия androidx.recyclerview:recyclerview:1.4.0 . Версия 1.4.0 содержит следующие изменения .
Важные изменения по сравнению с версией RecyclerView 1.3.2
- Поддержка
Adaptiveчастоты обновления:RecyclerViewтеперь вызываетsetFrameContentVelocityпри прокрутке черезOverScroller(например, при переходе от плавной или быстрой прокрутки). ( I8f8a4 )
Версия 1.4.0-rc01
18 сентября 2024 г.
Выпущена версия androidx.recyclerview:recyclerview:1.4.0-rc01 , без изменений по сравнению с версией 1.4.0-alpha02 . Версия 1.4.0-rc01 содержит следующие коммиты .
Изменения по сравнению с версией 1.3.2
Примечание по совместимости : Эта версия будет компилироваться только с SDK API 35 (Vanilla Ice Cream) или выше. Если при обновлении вы видите предупреждения AGP (Android Gradle Plugin), вы можете их отключить.
Новые функции
- Поддержка
Adaptiveчастоты обновления:RecyclerViewтеперь вызываетsetFrameContentVelocityпри прокрутке черезOverScroller(например, при переходе от плавной или быстрой прокрутки). ( I8f8a4 )
Изменения в API
- Добавить API
RecyclerView$LayoutManager#isLayoutReversed. ( I4970e )
Другие изменения
- Удалено ручное описание доступа к новым API платформы, поскольку это происходит автоматически посредством моделирования API при использовании R8 с AGP 7.3 или более поздней версии (например, R8 версии 3.3) и для всех сборок при использовании AGP 8.1 или более поздней версии (например, D8 версии 8.1). Клиентам, не использующим AGP, рекомендуется обновиться до D8 версии 8.1 или более поздней. Подробнее см. в этой статье . ( Ia60e0 , b/345472586 )
- Добавьте тип представления элемента в разделы трассировки привязки/создания
RecyclerViewи пометьте предварительную выборку RV как «принудительная — необходима в следующем кадре», если ожидается, что она будет использоваться в следующем кадре, и, следовательно, должна начать работу как можно скорее. ( I8ec3e , b/309523615 ) - Обновите
compileSdkдо версии 35 (подробности см. в разделе «Примечание о совместимости» выше). 5dc41be
Версия 1.4.0-beta01
21 августа 2024 г.
Выпущена версия androidx.recyclerview:recyclerview:1.4.0-beta01 , без изменений по сравнению с версией 1.4.0-alpha02 . Версия 1.4.0-beta01 содержит следующие коммиты .
Примечание по совместимости : Эта версия будет компилироваться только с SDK API 35 (Vanilla Ice Cream) или выше. Если при обновлении вы видите предупреждения AGP (Android Gradle Plugin), вы можете их отключить.
Версия 1.4.0-alpha02
7 августа 2024 г.
Выпущена версия androidx.recyclerview:recyclerview:1.4.0-alpha02 . Версия 1.4.0-alpha02 содержит следующие коммиты .
Примечание по совместимости : Эта версия будет компилироваться только с SDK API 35 (Vanilla Ice Cream) или выше. Если при обновлении вы видите предупреждения AGP (Android Gradle Plugin), вы можете их отключить.
Новые функции
- Поддержка переменной частоты обновления: RecyclerView теперь вызывает
setFrameContentVelocityпри прокрутке через OverScroller (например, при переходе от плавной или быстрой прокрутки). ( I8f8a4 )
Изменения в API
- Устаревшие API
ViewCompat.LAYOUT_DIRECTION_( I51710 , b/317055535 ) - Добавить API
RecyclerView$LayoutManager#isLayoutReversed. ( I4970e )
Другие изменения
- Удалено ручное описание доступа к новым API платформы, поскольку это происходит автоматически посредством моделирования API при использовании R8 с AGP 7.3 или более поздней версии (например, R8 версии 3.3) и для всех сборок при использовании AGP 8.1 или более поздней версии (например, D8 версии 8.1). Клиентам, не использующим AGP, рекомендуется обновиться до D8 версии 8.1 или более поздней. Подробнее см. в этой статье . ( Ia60e0 , b/345472586 )
- Добавьте тип представления элемента в разделы трассировки привязки/создания
RecyclerViewи пометьте предварительную выборку RV как «принудительная — необходима в следующем кадре», если ожидается, что она будет использоваться в следующем кадре, и, следовательно, должна начать работу как можно скорее. ( I8ec3e , b/309523615 ) - Обновите
compileSdkдо версии 35 (подробности см. в разделе «Примечание о совместимости» выше). 5dc41be
Внешний вклад
-
GestureDetectorCompatтеперь устарела, посколькуGestureDetectorдоступен вminSdk( Icc4cd ).
Версия 1.4.0-alpha01
18 октября 2023 г.
Выпущена версия androidx.recyclerview:recyclerview:1.4.0-alpha01 . Версия 1.4.0-alpha01 содержит следующие коммиты.
Изменения в API
- Добавить API
RecyclerView$LayoutManager#isLayoutReversed. ( I4970e )
Исправлены ошибки
- Исправлена ошибка, вызывавшая периодические сбои во время анимации ( I42f22b ) (также включено в версию 1.3.2).
Версия 1.3.2
Версия 1.3.2
18 октября 2023 г.
Выпущена версия androidx.recyclerview:recyclerview:1.3.2 . Версия 1.3.2 содержит следующие изменения.
Исправлены ошибки
- Исправлена ошибка, вызывавшая периодические сбои во время анимации. ( I42f22b )
Версия 1.3.1
Версия 1.3.1
26 июля 2023 г.
Выпущена версия androidx.recyclerview:recyclerview:1.3.1 , без изменений по сравнению с версией 1.3.1-rc01. Версия 1.3.1 содержит следующие коммиты.
С примечаниями к предыдущим версиям можно ознакомиться на нашей странице «Примечания к выпускам» .
Версия 1.3.1-rc01
24 мая 2023 г.
Выпущена версия androidx.recyclerview:recyclerview:1.3.1-rc01 . Версия 1.3.1-rc01 содержит следующие коммиты.
Пользователям ViewPager2 необходимо обновить RecyclerView как минимум до версии 1.1.0-beta02, чтобы избежать сбоев.
Изменения в API
- Добавлены новые методы
setDebugAssertionsEnabledиsetVerboseLoggingEnabled, которые могут помочь в отладке проблем, связанныхRecyclerViewв приложениях. ( I514b9 )
Исправлены ошибки
- Исправлены ошибки, приводящие к сбоям у пользователей
ViewTreeLifecycleOwner(включаяComposeView), путем временного повторного присоединения временно отсоединенных представлений при вызовеonBind. ( I7244f2c , b/265347515 , b/283288295 )
Версия 1.3.0
Версия 1.3.0
8 марта 2023 г.
Выпущена версия androidx.recyclerview:recyclerview:1.3.0 , без изменений по сравнению с версией 1.3.0-rc01. Версия 1.3.0 содержит следующие коммиты.
Важные изменения по сравнению с версией 1.2.0
- В этом релизе содержатся улучшения производительности (ранее включенные в версии 1.3.0-alpha02 и 1.3.0-beta01 ) при использовании с Jetpack Compose. Если вы используете Compose
1.2.0-beta02или более позднюю версию и применялиViewCompositionStrategyMyComposeAdapterиDisposeOnViewTreeLifecycleDestroyed, описанные в предыдущих рекомендациях по совместимости, вам следует удалить их , поскольку они больше не улучшают состояние по умолчанию. - Добавлен новый метод
ConcatAdapter.getWrappedAdapterAndPosition, позволяющий получать информацию об обернутом адаптере в ситуациях, когда отсутствуетViewHolder, например, в случае использованияSpanSizeLookup( I2bd4c , b/191543920 ).
Версия 1.3.0-rc01
21 сентября 2022 г.
Выпущена версия androidx.recyclerview:recyclerview:1.3.0-rc01 . Версия 1.3.0-rc01 содержит следующие коммиты.
- С момента последнего релиза изменений нет.
Версия 1.3.0-beta02
10 августа 2022 г.
Выпущена версия androidx.recyclerview:recyclerview:1.3.0-beta02 . Версия 1.3.0-beta02 содержит следующие коммиты.
Изменения в API
- Удалены аннотации допустимости значений null, добавленные в версии 1.3.0-beta01, поскольку они представляли собой существенное изменение, несовместимое с исходным кодом для пользователей Kotlin ( I7a258 , I1557e6 , I8db76 ).
Версия 1.3.0-beta01
29 июня 2022 г.
Выпущена версия androidx.recyclerview:recyclerview:1.3.0-beta01 . Версия 1.3.0-beta01 содержит следующие коммиты.
Новые функции
- В этом бета-релизе содержатся улучшения производительности (ранее включенные в версию 1.3.0-alpha02 при использовании с Jetpack Compose). Если вы используете Compose
1.2.0-beta02или более позднюю версию и применялиViewCompositionStrategyMyComposeAdapterиDisposeOnViewTreeLifecycleDestroyed, описанные в предыдущих рекомендациях по совместимости, вам следует удалить их , поскольку они больше не улучшают состояние по умолчанию.
Изменения в API
- Добавлены аннотации, указывающие на возможность значения null, для ряда методов и параметров, чтобы улучшить предупреждения линтера для пользователей Java и обеспечить совместимость для пользователей Kotlin. Это может привести к несовместимости исходного кода для некоторых пользователей Kotlin и вызвать дополнительные предупреждения/ошибки линтера для некоторых пользователей Java. ( I61829 , b/236487044 ; Ia0b6f ; I6f119 , b/236487209 ; Ibe1de , b/236487210 )
Исправлены ошибки
- Чтобы службы доступности обрабатывали сетки как сетки, укажите имя класса информации об узле доступности. ( I12812 )
Версия 1.3.0-alpha02
6 апреля 2022 г.
Выпущена версия androidx.recyclerview:recyclerview:1.3.0-alpha02 . Версия 1.3.0-alpha02 содержит следующие коммиты.
Изменения в API
- Добавлены экспериментальные методы
BuildCompatдля будущих SDK ( Iafd82 , b/207528937 ) - Добавлен новый метод
ConcatAdapter.getWrappedAdapterAndPosition, позволяющий получать информацию об обернутом адаптере в ситуациях, когда отсутствует ViewHolder, например, в случае использованияSpanSizeLookup( I2bd4c , b/191543920 ).
Исправлены ошибки
- Интеграция с новой библиотекой AndroidX PoolingContainer ( Ib89d2 )
- Изменяет расстояние прокрутки для действий, связанных с доступностью ( If74ae )
Версия 1.3.0-alpha01
15 сентября 2021 г.
Выпущена версия androidx.recyclerview:recyclerview:1.3.0-alpha01 . Версия 1.3.0-alpha01 содержит следующие коммиты.
Новые функции
- Добавлена поддержка растягивания RecyclerView при прокрутке поверх других элементов. ( Iab877 )
RecyclerView-Selection Версия 1.3.0
Версия 1.3.0-alpha01
17 декабря 2025 г.
Выпущена версия androidx.recyclerview:recyclerview-selection:1.3.0-alpha01 . Версия 1.3.0-alpha01 содержит следующие коммиты .
Изменения в API
- Функция Let in-selection-hotspot clear existing selection ( I0eae7 , b/389814214 ) предоставляет разработчикам больший контроль над тем, останутся ли выделенными или будут сняты выделения у других уже выделенных элементов при нажатии или щелчке по
RecyclerViewдля выбора элемента.
RecyclerView-Selection Версия 1.2.0
Версия 1.2.0
20 мая 2025 г.
Выпущена версия androidx.recyclerview:recyclerview-selection:1.2.0 . Версия 1.2.0 содержит следующие коммиты .
Важные изменения по сравнению с версией 1.1.0
- Исправлена ошибка, из-за которой небольшие движения мыши превращали щелчки в перетаскивание.
- Исправлена ошибка, из-за которой сопоставление ключа и позиции в KeyProvider терялось, пока запись еще не была перезапущена.
Версия 1.2.0-rc01
7 мая 2025 г.
Выпущена версия androidx.recyclerview:recyclerview-selection:1.2.0-rc01 . Версия 1.2.0-rc01 содержит следующие коммиты .
Исправлены ошибки
- Исправлена ошибка, из-за которой небольшие движения мыши превращали щелчки в перетаскивание. ( IE9106 )
Версия 1.2.0-beta01
9 апреля 2025 г.
Выпущена версия androidx.recyclerview:recyclerview-selection:1.2.0-beta01 . Версия 1.2.0-beta01 содержит следующие коммиты .
Изменения в API
- Устаревшие API
ViewCompat.LAYOUT_DIRECTION_( I51710 , b/317055535 )
Исправлены ошибки
- В этой библиотеке теперь используются аннотации JSpecify для проверки на null , которые относятся к использованию типов. Разработчикам Kotlin следует использовать следующий аргумент компилятора для обеспечения корректного использования:
-Xjspecify-annotations=strict(это значение по умолчанию, начиная с версии 2.1.0 компилятора Kotlin). ( I03b80 , b/326456246 )
Версия 1.2.0-alpha01
5 мая 2021 г.
Выпущена версия androidx.recyclerview:recyclerview-selection:1.2.0-alpha01 . Версия 1.2.0-alpha01 содержит следующие коммиты.
Исправлены ошибки
- Исправлена ошибка, из-за которой сопоставление ключа и позиции в KeyProvider терялось, пока запись еще не была перезапущена. ( b/145767095 )
Версия 1.2.1
Версия 1.2.1
2 июня 2021 г.
Выпущена версия androidx.recyclerview:recyclerview:1.2.1 . Версия 1.2.1 содержит следующие изменения.
Исправлены ошибки
- Теперь
ViewHolderвнутриConcatAdapterвозвращает правильное положение адаптера при запросе в коллбэкеonViewRecycled. ( b/187339376 )
Версия 1.2.0
Версия 1.2.0
7 апреля 2021 г.
Выпущена версия androidx.recyclerview:recyclerview:1.2.0 . Версия 1.2.0 содержит следующие изменения.
Значительные изменения по сравнению с версией 1.1.0
ConcatAdapter : Этот новый адаптер позволяет легко объединять несколько адаптеров в одном RecyclerView. Подробнее см. в статье блога .
- В рамках этих изменений метод
ViewHolder.getAdapterPositionобъявляется устаревшим и заменяется двумя новыми методами:- Функция getBindingAdapterPosition возвращает позицию относительно адаптера, который привязал данный элемент.
- Метод `getAbsoluteAdapterPosition` возвращает позицию относительно всего элемента RecyclerView.
Ленивое восстановление состояния : адаптер RecyclerView теперь может откладывать восстановление состояния до тех пор, пока не будет загружено его содержимое. Подробнее см. в документации .
Версия 1.2.0-rc01
24 марта 2021 г.
Выпущена версия androidx.recyclerview:recyclerview:1.2.0-rc01 . Версия 1.2.0-rc01 содержит следующие коммиты.
Исправлены ошибки
-
ConcatAdapter.Config.Builderтеперь есть значения по умолчанию, соответствующиеConfig.DEFAULT( b/157169835 )
Версия 1.2.0-beta02
24 февраля 2021 г.
Выпущена версия androidx.recyclerview:recyclerview:1.2.0-beta02 . Версия 1.2.0-beta02 содержит следующие коммиты.
Исправлены ошибки
- Исправлена ошибка, из-за которой верхний отступ приводил к тому, что свечение при прокрутке справа перемещалось вверх в область с отступом, а не вниз, чтобы сохранить отступ. ( I6b61d , b/118399122 )
Версия 1.2.0-beta01
2 декабря 2020 г.
Выпущена версия androidx.recyclerview:recyclerview:1.2.0-beta01 без изменений по сравнению с 1.2.0-alpha06 . Версия 1.2.0-beta01 содержит следующие коммиты.
Версия 1.2.0-alpha06
1 октября 2020 г.
Выпущена версия androidx.recyclerview:recyclerview:1.2.0-alpha06 . Версия 1.2.0-alpha06 содержит следующие коммиты.
Новые функции
- Добавлена поддержка добавления нескольких RecyclerListener. ( I70ad8 , b/145767095 )
Изменения в API
- Устаревшая функция RecyclerView.setRecyclerListener(RecyclerListener). ( I70ad8 , b/145767095 )
Версия 1.2.0-alpha05
22 июля 2020 г.
Выпущена версия androidx.recyclerview:recyclerview:1.2.0-alpha05 . Версия 1.2.0-alpha05 содержит следующие коммиты.
Исправлены ошибки
- Исправлена ошибка, из-за которой, если RecyclerView содержал только один элемент и находился в фокусе, перемещение фокуса вперед или назад не приводило к его изменению. ( 6f36b3 )
- Исправлена ошибка
ArrayIndexOutOfBoundsExceptionвStaggeredGridLayoutManager( 49b601 , b/122303625 , b/74877618 , b/160193663 , b/37086625 ) - Исправлена ошибка измерения, из-за которой при определенных обстоятельствах RecyclerView некорректно не отображал свои дочерние элементы. ( 89040c , b/138734786 )
Внешние вклады
- Благодарим Колина Кревинкеля от имени Facebook за предоставленную информацию !
Версия 1.2.0-alpha04
24 июня 2020 г.
Выпущена версия androidx.recyclerview:recyclerview:1.2.0-alpha04 . Версия 1.2.0-alpha04 содержит следующие коммиты.
Изменения в API
- Переименование
MergeAdapterвConcatAdapterбыло изменено во избежание путаницы с различными механизмами слияния данных ( c0540c , b/158019211 ).
Исправлены ошибки
- Улучшения автоматической прокрутки при удалении всех видимых элементов ( fe8670 , b/154124815 )
Версия 1.2.0-alpha03
29 апреля 2020 г.
Выпущена версия androidx.recyclerview:recyclerview:1.2.0-alpha03 . Версия 1.2.0-alpha03 содержит следующие коммиты.
Новые функции
- В RecyclerView теперь есть метод
nestedScrollBy, который позволяет осуществлять программную прокрутку, взаимодействующую с вложенной прокруткой: ( Ibaa58 )
Версия 1.2.0-alpha02
1 апреля 2020 г.
Выпущена версия androidx.recyclerview:recyclerview:1.2.0-alpha02 . Версия 1.2.0-alpha02 содержит следующие коммиты.
Эта и более новые версии RecyclerView несовместимы с более старыми версиями ViewPager2. Если вы используете androidx.viewpager2:viewpager2:1.0.0 или более раннюю версию, обязательно обновите ее до androidx.viewpager2:viewpager2:1.1.0-alpha01 .
Новые функции
MergeAdapter
- MergeAdapter : Новый адаптер для RecyclerView, позволяющий линейно объединять несколько адаптеров.
MyAdapter adapter1 = ...; AnotherAdapter adapter2 = ...; MergeAdapter merged = new MergeAdapter(adapter1, adapter2); recyclerView.setAdapter(mergedAdapter);В приведенном выше примере MergeAdapter сначала отобразит элементы из
adapter1, а затем изadapter2.Восстановление состояния
RecyclerView.Adapterс отложенной активацией :В класс
RecyclerView.Adapterдобавлен новый API, позволяющий адаптеру управлять моментом восстановления состояния макета.Например, вы можете вызвать:
myAdapter.setStateRestorationStrategy(StateRestorationStrategy.WHEN_NOT_EMPTY);чтобы заставить RecyclerView ждать, пока Adapter не станет свободным, прежде чем восстанавливать положение прокрутки.
Информационные поля CollectionInfo и CollectionItemInfo больше не будут заполняться по умолчанию.
Если вы хотите, чтобы службы специальных возможностей (например, Talkback) продолжали отображать пользователю количество и индекс элементов, вам потребуется самостоятельно заполнить поля CollectionInfo и CollectionItemInfo.
Эти объекты больше не заполняются во фреймворке, поскольку фреймворк не может определить количество элементов, воспринимаемых пользователем (например, разделители, заголовки или элементы RecyclerView, представляющие несколько воспринимаемых элементов).
Исправлены ошибки
- Теперь RecyclerView избегает привязки к элементам представления, находящимся за пределами области просмотра, при изменении размера этой области.
- Исправлена ошибка в DiffUtil, из-за которой разница могла вычисляться неправильно, если исходный элемент в первом списке дублировался несколько раз во втором списке. ( b/123376278 )
Версия 1.2.0-alpha01
18 декабря 2019 г.
Выпущена версия androidx.recyclerview:recyclerview:1.2.0-alpha01 . Версия 1.2.0-alpha01 содержит следующие коммиты .
Исправлены ошибки
- Исправлены незначительные проблемы с FastScroller, связанные с отрисовкой RTL и точностью сенсорного ввода ( b/143789932 , aosp/1130438 ).
- Исправлена ошибка, приводившая к сбою в ItemTouchHelper при удалении элемента из RecyclerView во время выполнения анимации ItemTouchHelper ( b/140447176 , aosp/1167575 ).
Версия 1.1.0
Версия 1.1.0
20 ноября 2019 г.
Выпущена версия androidx.recyclerview:recyclerview:1.1.0 . Версия 1.1.0 содержит следующие изменения .
Важные изменения с версии 1.0.0
- Теперь
PagerSnapHelperиLinearSnapHelperучитывают отступы RecyclerView независимо от значенияclipToPadding( b/139452422 , b/139012032 , aosp/1103182 , aosp/1106715 , aosp/1130728 ) -
RecyclerView.setLayoutTransition(LayoutTransition)официально устарел и вызовет исключениеIllegalArgumentExceptionпри вызове с ненулевым значением. Используйте вместо негоRecyclerView.setItemAnimator(ItemAnimator). ( aosp/839414 ) - aosp/723649 : RecyclerView теперь реализует интерфейс
NestedScrollingChild3, что позволяет ему получать уведомления о том, когда все его вложенные родительские элементы прокрутки перестали использовать вложенные расстояния прокрутки. Если в коде разработчика в настоящее время переопределенRecyclerView.onNestedScroll(View, int, int, int, int, int), то он, вероятно, больше не будет вызываться, и вместо него следует переопределитьRecyclerView.onNestedScroll(View, int, int, int, int, int, int[]). - В RecyclerView теперь есть атрибут стиля по умолчанию:
recyclerViewStyle, который позволяет задать стиль по умолчанию в вашей теме. - API действий доступности ViewCompat больше не нарушает работу ItemDelegate в RecyclerView.
-
LinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[])можно переопределить, чтобы настроить, сколько дополнительного пространства должно быть добавлено по обе стороны от соответствующего RecyclerView. ( aosp/931259 ) - Добавлена новая перегрузка метода smoothScrollBy:
RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration), которая позволяет указать длительность анимации в миллисекундах. ( aosp/952807 )
Версия 1.1.0-rc01
23 октября 2019 г.
Выпущена версия androidx.recyclerview:recyclerview:1.1.0-rc01 . Версия 1.1.0-rc01 содержит следующие коммиты .
Исправлены ошибки
- Исправлена ошибка "Приложение не отвечает" при переопределении метода
RecyclerViewAccessibilityDelegate.ItemDelegate( aosp/1138057 , aosp/1133434 )
Версия 1.1.0-beta05
9 октября 2019 г.
Выпущена версия androidx.recyclerview:recyclerview:1.1.0-beta05 . Версия 1.1.0-beta05 содержит следующие коммиты .
изменения API
- В продолжение aosp/1106715 и aosp/1103182 , теперь LinearSnapHelper и PagerSnapHelper будут возвращать представление, находящееся в центре границ RecyclerView, за вычетом отступов, независимо от значения clipToPadding. ( aosp/1130728 )
Исправлены ошибки
- Исправлена ошибка, из-за которой RecyclerView генерировал дублирующиеся узлы доступности для дочерних элементов RecyclerView. ( aosp/1130618 )
- Исправлена ошибка, из-за которой виртуальные иерархии доступности в RecyclerView не работали.
- Исправлена ошибка, из-за которой не использовались пользовательские ItemDelegate.
Версия 1.1.0-beta04
5 сентября 2019 г.
Выпущена версия androidx.recyclerview:recyclerview:1.1.0-beta04 . Список изменений, включенных в эту версию, можно найти здесь .
Исправлены ошибки
- Теперь
PagerSnapHelperиLinearSnapHelperучитывают отступы RecyclerView независимо от значенияclipToPadding( b/139452422 , b/139012032 , aosp/1103182 , aosp/1106715 ). - Исправлена ошибка, из-за которой RecyclerView не запрещал перехват касаний, когда вложенная предварительная прокрутка приводила к прокрутке
NestedScrollingParent( b/138668210 , aosp/1105373 ). Это полезно для таких библиотек, как ViewPager2 . - Теперь RecyclerView стабильно переходит в состояние
SCROLL_STATE_DRAGGINGдо того, как будут запущены вложенные предварительные прокрутки ( aosp/1105373 ) - Вложенная предварительная прокрутка больше не выполняется до тех пор, пока жест не выйдет за пределы допустимого диапазона касания ( b/139530818 , aosp/1105373 ).
- Аргументы
dxиdy, передаваемые вложенным элементам предварительной прокрутки, обнуляются, если RecyclerView не может прокручиваться в этом направлении ( aosp/1105373 )
Версия 1.1.0-beta03
15 августа 2019 г.
Выпущена версия androidx.recyclerview:recyclerview:1.1.0-beta03 . Список изменений, включенных в эту версию, можно найти здесь .
изменения API
- Теперь RecyclerView передает данные о расстоянии прокрутки через
View.onScrollChanged(int l, int t, int oldl, int oldt), благодаря чему службы специальных возможностей получают точные уведомления об изменениях прокрутки. ( aosp/1007823 )
Исправлены ошибки
- Исправлена серьезная ошибка переполнения стека, связанная с RecyclerView и доступностью. ( aosp/1099577 )
Версия 1.1.0-beta02
7 августа 2019 г.
Выпущена версия androidx.recyclerview:recyclerview:1.1.0-beta02 . Список изменений, включенных в эту версию, можно найти здесь .
Новые функции
- В RecyclerView теперь есть атрибут стиля по умолчанию:
recyclerViewStyle, который позволяет задать стиль по умолчанию в вашей теме.
Исправлены ошибки
- Исправлена ошибка, из-за которой RecyclerView не запрещал перехват касаний при прокрутке, что приводило к прокрутке NestedScrollingParent. ( b/131115697 , aosp/1055911 )
Версия 1.1.0-beta01
2 июля 2019 г.
Выпущена версия androidx.recyclerview:recyclerview:1.1.0-beta01 . Список изменений, включенных в эту версию, можно найти здесь .
Новые функции
- Теперь
RecyclerViewучаствует во вложенной прокрутке, когда прокрутка инициируется с помощью событий доступности. ( aosp/973584 )
Версия 1.1.0-alpha06
5 июня 2019 г.
Выпущены версии androidx.recyclerview:recyclerview:1.1.0-alpha06 и androidx.recyclerview:recyclerview-selection:1.1.0-alpha06 . Список изменений, включенных в эту версию, можно найти здесь .
Новые функции
- Добавлена новая перегрузка метода smoothScrollBy:
RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration), которая позволяет указать длительность анимации в миллисекундах. ( aosp/952807 )
изменения API
-
GridLayoutManagerиStaggeredGridLayoutManagerбольше не помечают автоматически все элементы сетки как заголовки в целях обеспечения доступности ( aosp/969703 ) - Сохранение порядка выбора (по времени создания) в
recyclerview-selection( aosp/937279 )
Исправлены ошибки
- Исправлена ошибка, из-за которой
RecyclerViewотображался с некорректной скоростью при вложенной прокрутке. ( aosp/961642 ) - Добавлены улучшения стабильности в
recyclerview-selection( aosp/960213 , aosp/926296 )
Версия 1.1.0-alpha05
7 мая 2019 г.
Выпущены версии androidx.recyclerview:recyclerview:1.1.0-alpha05 и androidx.recyclerview:recyclerview-selection:1.1.0-alpha05 . Список изменений, включенных в эту версию, можно найти здесь .
Новые функции
-
LinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[])можно переопределить, чтобы настроить, сколько дополнительного пространства должно быть добавлено по обе стороны от соответствующего RecyclerView. ( aosp/931259 )
изменения API
- Добавить API для получения изображения
DividerItemDecoration( aosp/937282 ) -
LinearLayout.getExtraLayoutSpace(RecyclerVew.State)следует заменить новым механизмом, позволяющим задавать дополнительное пространство компоновки с обеих сторон. Новый метод называетсяLinearLayout.calculateExtraLayoutSpace(RecyclerView.state, int[])( aosp/931259 )
Исправлены ошибки
- Очищен выбор жестов ( aosp/940781 )
- Сохранение порядка выбора (по времени создания) ( b/128455535 )
Версия 1.1.0-alpha04
3 апреля 2019 г.
Выпущена версия androidx.recyclerview:recyclerview:1.1.0-alpha04 . Список изменений, включенных в эту версию, можно найти здесь .
Исправлены ошибки
- Ранее обработчики событий OnItemTouchListener в RV не могли перехватывать события ACTION_UP, что препятствовало блокировке обработки событий ACTION_UP другим кодом. Теперь это исправлено: ( aosp/916137 )
Версия 1.1.0-alpha03
13 марта 2019 г.
Выпущена версия androidx.recyclerview:recyclerview:1.1.0-alpha03 . Полный список изменений, включенных в эту версию, можно найти здесь .
Новые функции
-
GridLayoutManager: Включение более точного определения размеров полосы прокруткиGridLayoutManager( aosp/838836 ):- Использует информацию о диапазоне для оценки размеров полосы прокрутки для
GridLayoutManager. - Чтобы включить эту функцию, вызовите
GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean)передав в качестве параметра значение true. - Дополнительную информацию см. в документации по
GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean).
- Использует информацию о диапазоне для оценки размеров полосы прокрутки для
Исправлены ошибки
- Доступность: Была обнаружена ошибка, из-за которой после повторного использования и последующей перенастройки ViewHolder, ItemDelegate, связанный с
RecyclerViewAccessibilityDelegateRecyclerView, не связывался с itemView ViewHolder, что нарушало доступность. Эта ошибка исправлена ( aosp/917740 ).
Версия 1.1.0-alpha02
30 января 2019 г.
Выпущена версия androidx.recyclerview:recyclerview 1.1.0-alpha02 .
изменения API
-
RecyclerView.setLayoutFrozen(boolean)иRecyclerView.isLayoutFrozen()устарели и заменены наRecyclerView.suppressLayout(boolean)иRecyclerView.isLayoutSuppressed(). ( aosp/839414 ) -
RecyclerView.setLayoutTransition(LayoutTransition)официально устарел и вызовет исключениеIllegalArgumentExceptionпри вызове с ненулевым значением. ( aosp/839414 )
Исправлены ошибки
- Исправлена ошибка в RV, из-за которой
SmoothScrollerникогда не останавливался ( aosp/843741 ) - Исправлена ошибка, из-за которой
SCROLL_STATE_IDLEне могла быть вызвана в конце анимации прокрутки. ( aosp/812576 )
Версия 1.1.0-alpha01
3 декабря 2018 г.
Выпущены androidx.recyclerview 1.1.0-alpha01 и androidx.recyclerview-selection 1.1.0-alpha01 .
androidx.recyclerview 1.1.0-alpha01
изменения API
- aosp/723649 : RecyclerView теперь реализует интерфейс
NestedScrollingChild3, что позволяет ему получать уведомления о том, когда все его вложенные родительские элементы прокрутки перестали использовать вложенные расстояния прокрутки. Если в коде разработчика в настоящее время переопределенRecyclerView.onNestedScroll(View, int, int, int, int, int), то он, вероятно, больше не будет вызываться, и вместо него следует переопределитьRecyclerView.onNestedScroll(View, int, int, int, int, int, int[]).
Исправлены ошибки
- Исправлена ошибка, приводившая к сбою при использовании
TransitionManagerдля сворачивания/разворачивания элемента вRecyclerView( b/37129527 ). - Исправлена ошибка, из-за которой поведение
RecyclerView.OnItemTouchListenerне соответствовало поведениюonInterceptTouchEventиonTouchEventв системе представлений ( aosp/721235 ). - Исправлено несколько ошибок, связанных с плавной прокруткой ( aosp/729718 , aosp/747168 , aosp/812576 ).
- Исправлена стратегия привязки в
PagerSnapHelperдля обработки нетипичных дочерних представлений ( aosp/795752 )
androidx.recyclerview-selection 1.1.0-alpha01
Исправлены ошибки
- Исправлена ошибка
ConcurrentModificationException, возникающая при изменении набора данных путем удаления выделенного фрагмента.
RecyclerView-Selection Версия 1.1.0
RecyclerView-Selection Версия 1.1.0
27 января 2021 г.
Выпущена версия androidx.recyclerview:recyclerview-selection:1.1.0 . Версия 1.1.0 содержит следующие коммиты.
Значительные изменения с версии 1.0.0
- Многочисленные улучшения стабильности.
- Методы
withGestureTooltypesиwithPointerTooltypesвSelectionTracker.Builderустарели. Эти методы будут удалены в будущих версиях.
RecyclerView-Selection Версия 1.1.0-rc03
1 октября 2020 г.
Выпущена версия androidx.recyclerview:recyclerview-selection:1.1.0-rc03 . Версия 1.1.0-rc03 содержит следующие коммиты.
Исправлены ошибки
Благодарим Стефана Кислера за тестирование исправлений и отзывы.
- Исправлена ошибка, из-за которой обработчики событий OnClickListener дочерних представлений неожиданно вызывались во время активного выделения.
- Обработчик мыши (выбор полосы) > Корректная обработка неожиданных прокруток. ( b/167821507 )
RecyclerView-Selection Версия 1.1.0-rc02
2 сентября 2020 г.
Выпущена версия androidx.recyclerview:recyclerview-selection:1.1.0-rc02 . Версия 1.1.0-rc02 содержит следующие коммиты.
Основные моменты
- Устранены несколько регрессий по сравнению с версией 1.0 в обработке входных данных.
- Библиотека обновлена для учета события
onRequestDisallowInterceptTouchEvent, что позволяет ей корректно взаимодействовать с ItemTouchHelper (просто смахните его!).
Исправлены ошибки
- Исправлена ошибка, из-за которой библиотека выделения неправильно интерпретировала события
GestureDetector, что приводило к потере касаний во время активного выделения ( b/165030422 ). - Исправлена ошибка, из-за которой выделение не обновлялось с учетом элементов, удаленных из адаптера. ( b/138932671 )
- Исправлена ошибка, из-за которой элементы RecyclerView вызывали события onClick, когда SelectionTracker имел активный выбор ( b/161162268 )
- Теперь
onRequestDisallowInterceptTouchEventобрабатывается корректно. - Исправлена ошибка, из-за которой при прокрутке мышью на клавише Q появлялось сообщение
”Cannot call this method in a scroll callback” - Обновлена документация (особенно в
StableIdKeyProvider) для более четкого определения требований к экземпляру RecyclerView.
Recyclerview-Selection Версия 1.1.0-rc01
5 февраля 2020 г.
Выпущена версия androidx.recyclerview:recyclerview-selection:1.1.0-rc01 . Версия 1.1.0-rc01 содержит следующие коммиты .
Исправлены ошибки
- Исправлена ошибка, из-за которой RecyclerView было сложно прокручивать с помощью жеста выбора, если он взаимодействовал с прокручиваемым AppBarLayout ( aosp/1193934 ).
RecyclerView-Selection Версия 1.1.0-beta01
4 декабря 2019 г.
Выпущена версия androidx.recyclerview:recyclerview-selection:1.1.0-beta01 . Версия 1.1.0-beta01 содержит следующие коммиты .
Общие улучшения стабильности, связанные с защитными проверками и управлением внутренним состоянием.
Исправлены ошибки
- Улучшено управление состоянием библиотеки и интерпретация событий отмены, что привело к повышению стабильности.
изменения API
- Добавлен параметр типа ключа выбора в классы и методы там, где он отсутствовал.
- Устаревшие методы:
- SelectionTracker.Builder#withPointerTooltype
- SelectionTracker.Builder#withGestureTooltype
- Эти методы существовали с целью позволить разработчикам сопоставлять поведение указателя или жеста с типами инструментов, отличными от стандартных*. Намерение было благим, но при дальнейшем использовании стало ясно, что ожидания пользователей относительно поведения ввода очень сильно зависят от типа инструмента. Кроме того, «пассивные» стилусы относятся к типу инструментов «ПАЛЬЦЫ» с точки зрения системы ввода Android.
- По умолчанию используются следующие типы инструментов: ПАЛЬЦЫ для управления жестами и МЫШИ для управления указателем.