Recyclerview

Отображайте большие объемы данных в пользовательском интерфейсе, минимизируя при этом использование памяти.

В этой таблице перечислены все артефакты, входящие в группу androidx.recyclerview .

Артефакт Стабильный релиз Предварительная версия релиза Бета-версия Альфа-версия
recyclerview 1.4.0 - - -
recyclerview-selection 1.2.0 - - 1.3.0-alpha01
Последнее обновление этой библиотеки: 17 декабря 2025 г.

Объявление зависимостей

Чтобы добавить зависимость от 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. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав кнопку со звездочкой.

Создать новую задачу

Для получения более подробной информации см. документацию по системе отслеживания ошибок .

Recyclerview

Версия 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

Compatibility note : This version will only compile against the API 35 (Vanilla Ice Cream) SDK or higher. If you see AGP (Android Gradle Plugin) warnings when you upgrade, you can suppress them.

Новые функции

  • Поддержка 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 содержит следующие коммиты .

Compatibility note : This version will only compile against the API 35 (Vanilla Ice Cream) SDK or higher. If you see AGP (Android Gradle Plugin) warnings when you upgrade, you can suppress them.

Версия 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

Версия 1.3.2

18 октября 2023 г.

Выпущена версия androidx.recyclerview:recyclerview:1.3.2 . Версия 1.3.2 содержит следующие изменения.

Исправлены ошибки

  • Исправлена ​​ошибка, вызывавшая периодические сбои во время анимации. ( I42f22b )

Версия 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

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 или более позднюю версию и применяли ViewCompositionStrategy MyComposeAdapter и 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 или более позднюю версию и применяли ViewCompositionStrategy MyComposeAdapter и 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 )

Версия 1.2

Версия 1.2.1

2 июня 2021 г.

Выпущена версия androidx.recyclerview:recyclerview:1.2.1 . Версия 1.2.1 содержит следующие изменения.

Исправлены ошибки

  • Теперь ViewHolder внутри ConcatAdapter возвращает правильное положение адаптера при запросе в коллбэке onViewRecycled . ( b/187339376 )

Версия 1.2.0

7 апреля 2021 г.

Выпущена версия androidx.recyclerview:recyclerview:1.2.0 . Версия 1.2.0 содержит следующие изменения.

Значительные изменения по сравнению с версией 1.1.0

ConcatAdapter : Этот новый адаптер позволяет легко объединять несколько адаптеров в одном 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 )

Внешние вклады

Версия 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

Версия 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, связанный с RecyclerViewAccessibilityDelegate RecyclerView, не связывался с 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.3

Версия 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 для выбора элемента.

Версия 1.2

Версия 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

Исправлены ошибки

  • В этой библиотеке теперь используются аннотации 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.1

Версия 1.1.0

27 января 2021 г.

Выпущена версия androidx.recyclerview:recyclerview-selection:1.1.0 . Версия 1.1.0 содержит следующие коммиты.

Значительные изменения с версии 1.0.0

  • Многочисленные улучшения стабильности.
  • Методы withGestureTooltypes и withPointerTooltypes в SelectionTracker.Builder устарели. Эти методы будут удалены в будущих версиях.

Версия 1.1.0-rc03

1 октября 2020 г.

Выпущена версия androidx.recyclerview:recyclerview-selection:1.1.0-rc03 . Версия 1.1.0-rc03 содержит следующие коммиты.

Исправлены ошибки

Благодарим Стефана Кислера за тестирование исправлений и отзывы.

  • Исправлена ​​ошибка, из-за которой обработчики событий OnClickListener дочерних представлений неожиданно вызывались во время активного выделения.
  • Обработчик мыши (выбор полосы) > Корректная обработка неожиданных прокруток. ( b/167821507 )

Версия 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.

Версия 1.1.0-rc01

5 февраля 2020 г.

Выпущена версия androidx.recyclerview:recyclerview-selection:1.1.0-rc01 . Версия 1.1.0-rc01 содержит следующие коммиты .

Исправлены ошибки

  • Исправлена ​​ошибка, из-за которой RecyclerView было сложно прокручивать с помощью жеста выбора, если он взаимодействовал с прокручиваемым AppBarLayout ( aosp/1193934 ).

Версия 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.
    • По умолчанию используются следующие типы инструментов: ПАЛЬЦЫ для управления жестами и МЫШИ для управления указателем.