Recyclerview
В этой таблице перечислены все артефакты в группе androidx.recyclerview
.
Артефакт | Стабильный релиз | Кандидат на релиз | Бета-релиз | Альфа-релиз |
---|---|---|---|---|
recyclerview | 1.4.0 | - | - | - |
recyclerview-выбор | 1.2.0 | - | - | - |
Объявление зависимостей
Чтобы добавить зависимость от RecyclerView, необходимо добавить репозиторий Google Maven в свой проект. Прочитайте репозиторий Google Maven для получения дополнительной информации.
Добавьте зависимости для необходимых артефактов в файл build.gradle
для вашего приложения или модуля:
классный
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" }
Котлин
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 лучше. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку со звездочкой.
Более подробную информацию смотрите в документации Issue Tracker .
Версия 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
Примечание о совместимости : эта версия будет компилироваться только с API 35 (Vanilla Ice Cream) SDK или выше. Если вы видите предупреждения 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 содержит эти коммиты .
Примечание о совместимости : эта версия будет компилироваться только с API 35 (Vanilla Ice Cream) SDK или выше. Если вы видите предупреждения AGP (Android Gradle Plugin) при обновлении, вы можете отключить их.
Версия 1.4.0-альфа02
7 августа 2024 г.
Выпущен androidx.recyclerview:recyclerview:1.4.0-alpha02
. Версия 1.4.0-alpha02 содержит эти коммиты .
Примечание о совместимости : эта версия будет компилироваться только с API 35 (Vanilla Ice Cream) SDK или выше. Если вы видите предупреждения 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-альфа01
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 необходимо обновиться как минимум до версии 1.1.0-beta02 при обновлении до этой версии RecyclerView
, чтобы избежать сбоев.
Изменения 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
или выше и использовалиMyComposeAdapter
иDisposeOnViewTreeLifecycleDestroyed
ViewCompositionStrategy
описанные в предыдущих рекомендациях по совместимости, вам следует удалить их , поскольку они больше не являются улучшением по сравнению с состоянием по умолчанию. - Добавлен новый метод
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
или выше и применялиMyComposeAdapter
иDisposeOnViewTreeLifecycleDestroyed
ViewCompositionStrategy
описанные в предыдущих рекомендациях по совместимости, вам следует удалить их , поскольку они больше не являются улучшением по сравнению с состоянием по умолчанию.
Изменения API
- Добавлены аннотации обнуляемости для ряда методов и параметров для улучшения предупреждений lint для пользователей Java и взаимодействия для пользователей Kotlin. Это может быть изменением, нарушающим исходный код для некоторых пользователей Kotlin, и привести к дополнительным предупреждениям/ошибкам lint для некоторых пользователей Java. ( I61829 , b/236487044 ; Ia0b6f ; I6f119 , b/236487209 ; Ibe1de , b/236487210 )
Исправление ошибок
- Убедитесь, что службы a11y рассматривают сетки как сетки, задав имя класса информации узла a11y. ( I12812 )
Версия 1.3.0-альфа02
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-альфа01
15 сентября 2021 г.
Выпущен androidx.recyclerview:recyclerview:1.3.0-alpha01
. Версия 1.3.0-alpha01 содержит эти коммиты.
Новые возможности
- Добавлена поддержка растянутой прокрутки RecyclerView. ( Iab877 )
RecyclerView-Выбор версии 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 )
Исправление ошибок
- Эта библиотека теперь использует аннотации nullness JSpecify , которые являются type-use. Разработчики Kotlin должны использовать следующий аргумент компилятора для обеспечения правильного использования:
-Xjspecify-annotations=strict
(это значение по умолчанию, начиная с версии 2.1.0 компилятора Kotlin). ( I03b80 , b/326456246 )
Версия 1.2.0-альфа01
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-альфа06
1 октября 2020 г.
Выпущен androidx.recyclerview:recyclerview:1.2.0-alpha06
. Версия 1.2.0-alpha06 содержит эти коммиты.
Новые возможности
- Добавлена поддержка добавления нескольких RecyclerListeners. ( I70ad8 , b/145767095 )
Изменения API
- Устаревший RecyclerView.setRecyclerListener(RecyclerListener). ( I70ad8 , b/145767095 )
Версия 1.2.0-альфа05
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-альфа04
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-альфа03
29 апреля 2020 г.
Выпущен androidx.recyclerview:recyclerview:1.2.0-alpha03
. Версия 1.2.0-alpha03 содержит эти коммиты.
Новые возможности
- RecyclerView теперь имеет метод
nestedScrollBy
, который позволяет программную прокрутку, взаимодействующую с вложенной прокруткой: ( Ibaa58 )
Версия 1.2.0-альфа02
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
:Добавлен новый API в класс
RecyclerView.Adapter
, который позволяет адаптеру контролировать, когда следует восстанавливать состояние макета.Например, вы можете позвонить:
myAdapter.setStateRestorationStrategy(StateRestorationStrategy.WHEN_NOT_EMPTY);
чтобы RecyclerView ждал, пока Adapter не станет пустым, прежде чем восстанавливать позицию прокрутки.
CollectionInfo и CollectionItemInfo больше не будут заполняться по умолчанию.
Если вы хотите, чтобы службы специальных возможностей (например, Talkback) продолжали показывать пользователю количество и индекс элемента, вам необходимо самостоятельно заполнить CollectionInfo и CollectionItemInfo.
Эти объекты больше не заполняются в фреймворке, поскольку фреймворк не может определить количество элементов, воспринимаемых пользователем (например, разделители, заголовки или элементы RecyclerView, представляющие несколько воспринимаемых элементов).
Исправление ошибок
- RecyclerView теперь избегает привязки к представлениям за пределами области просмотра, если размер области просмотра изменился.
- Исправлена ошибка в DiffUtil, из-за которой он мог неправильно вычислить разницу, если исходный элемент в первом списке дублировался несколько раз во втором списке. ( b/123376278 )
Версия 1.2.0-альфа01
18 декабря 2019 г.
Выпущен androidx.recyclerview:recyclerview:1.2.0-alpha01
. Версия 1.2.0-alpha01 содержит эти коммиты .
Исправления ошибок
- Исправлены незначительные проблемы с FastScroller, связанные с рисованием справа налево и точностью касания ( 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
при вызове со значением, отличным от null. Вместо этого используйте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 больше не нарушает работу RecyclerView ItemDelegate.
-
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 )
- Исправлена ошибка, из-за которой иерархии виртуальной доступности в RecyclerViews не работали.
- Исправлена ошибка, из-за которой не использовались пользовательские ItemDelegates.
Версия 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-альфа06
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-альфа05
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
drawable ( aosp/937282 ) - Устаревать
LinearLayout.getExtraLayoutSpace(RecyclerVew.State)
в пользу нового механизма, который позволяет иметь настраиваемое дополнительное пространство макета с обеих сторон. Новый метод —LinearLayout.calculateExtraLayoutSpace(RecyclerView.state, int[])
( aosp/931259 )
Исправления ошибок
- Очищен выбор жестов ( aosp/940781 )
- Сохранить порядок выбора (по времени создания) ( b/128455535 )
Версия 1.1.0-альфа04
3 апреля 2019 г.
Выпущен androidx.recyclerview:recyclerview:1.1.0-alpha04
. Коммиты, включенные в эту версию, можно найти здесь .
Исправления ошибок
- Ранее RV OnItemTouchListener не мог перехватывать ACTION_UP, не давая OnItemTouchListener блокировать другой код, чтобы он не отвечал на ACTION_UP. Теперь это исправлено: ( aosp/916137 )
Версия 1.1.0-альфа03
13 марта 2019 г.
Выпущен androidx.recyclerview:recyclerview:1.1.0-alpha03
. Полный список коммитов, включенных в эту версию, можно найти здесь .
Новые возможности
-
GridLayoutManager
: включение, оценка размеров полосы прокруткиGridLayoutManager
с более высоким разрешением ( aosp/838836 ):- Использует информацию о диапазоне для оценки размеров полосы прокрутки для
GridLayoutManager
. - Чтобы включить, вызовите
GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean)
передав значение true. - Дополнительную информацию см. в документации по
GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean)
.
- Использует информацию о диапазоне для оценки размеров полосы прокрутки для
Исправления ошибок
- Доступность: Была ошибка, когда после повторного использования ViewHolder и последующего привязки ItemDelegate, связанный с
RecyclerViewAccessibilityDelegate
RecyclerView, не был связан с itemView ViewHolder, что нарушало доступность. Теперь это исправлено ( aosp/917740 ).
Версия 1.1.0-альфа02
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)
формально устарел и при вызове со значением, отличным от null, будет выдавать исключениеIllegalArgumentException
. ( aosp/839414 )
Исправления ошибок
- Исправлена ошибка в RV, из-за которой
SmoothScroller
никогда не останавливался ( aosp/843741 ) - Исправлена ошибка, из-за которой
SCROLL_STATE_IDLE
не мог быть вызван в конце анимации прокрутки. ( aosp/812576 )
Версия 1.1.0-альфа01
3 декабря 2018 г.
Выпущены androidx.recyclerview 1.1.0-alpha01
и androidx.recyclerview-selection 1.1.0-alpha01
.
androidx.recyclerview 1.1.0-альфа01
Изменения 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-выбор 1.1.0-alpha01
Исправления ошибок
- Исправлена ошибка
ConcurrentModificationException
при изменении набора данных с удалением выделения.
RecyclerView-Выбор версии 1.1.0
RecyclerView-Выбор версии 1.1.0
27 января 2021 г.
Выпущен androidx.recyclerview:recyclerview-selection:1.1.0
. Версия 1.1.0 содержит эти коммиты.
Основные изменения по сравнению с версией 1.0.0
- Многочисленные улучшения стабильности.
- Методы
withGestureTooltypes
иwithPointerTooltypes
вSelectionTracker.Builder
устарели. Эти методы будут удалены в будущем выпуске.
RecyclerView-Выбор версии 1.1.0-rc03
1 октября 2020 г.
Выпущен androidx.recyclerview:recyclerview-selection:1.1.0-rc03
. Версия 1.1.0-rc03 содержит эти коммиты.
Исправление ошибок
Благодарим Стефана Кислера за тестирование исправлений и отзывы.
- Исправлена ошибка, из-за которой дочерние представления OnClickListeners неожиданно вызывались во время активного выбора.
- Обработчик мыши (выбор полосы) > Изящная обработка неожиданных прокруток. ( b/167821507 )
RecyclerView-Выбор версии 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-Выбор версии 1.1.0-rc01
5 февраля 2020 г.
Выпущен androidx.recyclerview:recyclerview-selection:1.1.0-rc01
. Версия 1.1.0-rc01 содержит эти коммиты .
Исправления ошибок
- Исправлена ошибка, из-за которой RecyclerView было сложно прокручивать с помощью жеста, если он взаимодействовал с прокручиваемым AppBarLayout ( aosp/1193934 ).
RecyclerView-Выбор версии 1.1.0-beta01
4 декабря 2019 г.
Выпущен androidx.recyclerview:recyclerview-selection:1.1.0-beta01
. Версия 1.1.0-beta01 содержит эти коммиты .
Общие улучшения стабильности, связанные с защитными проверками и управлением внутренним состоянием.
Исправления ошибок
- Улучшено управление состоянием библиотеки и интерпретация событий CANCEL, что привело к повышению стабильности.
Изменения API
- Добавлен параметр типа ключа выбора для классов и методов, где он отсутствовал.
- Устаревшие методы:
- SelectionTracker.Builder#withPointerTooltype
- SelectionTracker.Builder#withGestureTooltype
- Эти методы существовали с намерением, что разработчики могли бы сопоставлять поведение указателя или жеста с типами инструментов, отличными от значений по умолчанию*. Намерение было хорошим, но при дальнейшем использовании стало ясно, что ожидания пользователей относительно поведения ввода очень специфичны для типа инструмента. Кроме того, «пассивные» стилусы являются типом инструмента FINGER, если говорить о системе ввода Android.
- Типы инструментов по умолчанию: FINGER для жеста и MOUSE для указателя.