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

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

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

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

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

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

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

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