Recyclerview

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

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

Артефакт Стабильный выпуск Релиз-кандидат Бета-версия Альфа-релиз
просмотр переработчика 1.3.2 - - 1.4.0-альфа02
recyclerview-selection 1.1.0 - - 1.2.0-альфа01
Последнее обновление этой библиотеки: 7 августа 2024 г.

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

Чтобы добавить зависимость от RecyclerView, вам необходимо добавить в свой проект репозиторий Google Maven. Для получения дополнительной информации прочтите репозиторий Google Maven .

Добавьте зависимости для нужных вам артефактов в файл build.gradle для вашего приложения или модуля:

классный

dependencies {
    implementation "androidx.recyclerview:recyclerview:1.3.2"
    // For control over item selection of both touch and mouse driven selection
    implementation "androidx.recyclerview:recyclerview-selection:1.1.0"
}

Котлин

dependencies {
    implementation("androidx.recyclerview:recyclerview:1.3.2")
    // For control over item selection of both touch and mouse driven selection
    implementation("androidx.recyclerview:recyclerview-selection:1.1.0")
}

Дополнительные сведения о зависимостях см. в разделе Добавление зависимостей сборки .

Обратная связь

Ваши отзывы помогают сделать Jetpack лучше. Дайте нам знать, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку со звездочкой.

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

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

Версия 1.4

Версия 1.4.0-альфа02

7 августа 2024 г.

Выпущен androidx.recyclerview:recyclerview:1.4.0-alpha02 . Версия 1.4.0-alpha02 содержит эти коммиты .

Примечание о совместимости . Эта версия будет компилироваться только с SDK API 35 (ванильное мороженое) или выше. Если при обновлении вы видите предупреждения AGP (Android Gradle Plugin), вы можете их подавить.

Изменения API

Новые возможности

  • Поддержка переменной частоты обновления: RecyclerView теперь вызывает setFrameContentVelocity при прокрутке через OverScroller (например, при стабилизации при прокрутке или плавной прокрутке). ( I8f8a4 )

Другие изменения

  • Убрано ручное определение доступа к API новой платформы, поскольку это происходит автоматически посредством моделирования API при использовании R8 с AGP 7.3 или новее (например, R8 версии 3.3) и для всех сборок при использовании AGP 8.1 или новее (например, D8 версии 8.1). Клиентам, не использующим AGP, рекомендуется выполнить обновление до D8 версии 8.1 или более поздней. Более подробную информацию можно найти в этой статье . ( Ia60e0 , б/345472586 )
  • Добавьте тип представления элемента в разделы привязки/создания трассировки RecyclerView и пометьте предварительные выборки RV как «принудительные — необходимы в следующем кадре», если ожидается, что они будут использоваться в следующем кадре, и поэтому работа должна начаться как можно скорее. ( I8ec3e , б/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 , б/265347515 , б/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

  • Удалены аннотации обнуления, добавленные в 1.3.0-beta01, поскольку они представляли собой существенное изменение, несовместимое с исходным кодом, для пользователей Kotlin ( I7a258 , I1557e6 , I8db76 ).

Версия 1.3.0-бета01

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

  • Добавлены аннотации об отсутствии значений для ряда методов и параметров для улучшения предупреждений о проверке ошибок для пользователей Java и совместимости для пользователей Kotlin. Это может привести к нарушению исходного кода для некоторых пользователей Kotlin и привести к дополнительным предупреждениям/ошибкам lint для некоторых пользователей Java. ( I61829 , б/236487044 ; Ia0b6f ; I6f119 , б/236487209 ; Ибе1де , б/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-альфа01

5 мая 2021 г.

Выпущен androidx.recyclerview:recyclerview-selection:1.2.0-alpha01 . Версия 1.2.0-alpha01 содержит эти коммиты.

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

  • Исправлена ​​проблема, из-за которой сопоставление ключа/позиции в KeyProvider терялось, пока запись еще не была переработана. ( б / 145767095 )

Версия 1.2.1

Версия 1.2.1

2 июня 2021 г.

androidx.recyclerview:recyclerview:1.2.1 выпущен. Версия 1.2.1 содержит эти коммиты.

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

  • ViewHolder внутри ConcatAdapter теперь возвращает правильную позицию адаптера при запросе в обратном вызове onViewRecycled . ( б / 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-бета02

24 февраля 2021 г.

Выпущен androidx.recyclerview:recyclerview:1.2.0-beta02 . Версия 1.2.0-beta02 содержит эти коммиты.

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

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

Версия 1.2.0-бета01

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 , б/145767095 )

Изменения API

  • Устаревший RecyclerView.setRecyclerListener(RecyclerListener). ( I70ad8 , б/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 , б/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 : новый адаптер 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 ждал, пока адаптер не станет пустым, прежде чем восстанавливать положение прокрутки.

  • CollectionInfo и CollectionItemInfo больше не будут заполняться по умолчанию.

    • Если вы хотите, чтобы службы специальных возможностей (например, Talkback) продолжали указывать пользователю количество и индекс элементов, вам необходимо самостоятельно заполнить CollectionInfo и CollectionItemInfo.

    • Эти объекты больше не заполняются в платформе, поскольку платформа не может определить количество элементов, воспринимаемых пользователем (например, разделители, заголовки или элементы RecyclerView, которые представляют несколько воспринимаемых элементов).

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

  • RecyclerView теперь избегает привязки к представлениям за пределами области просмотра, когда размер области просмотра изменился.
  • Исправлена ​​ошибка в DiffUtil, из-за которой он мог неправильно вычислить разницу, если исходный элемент в первом списке несколько раз дублируется во втором списке. ( б / 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 при вызове с ненулевым значением. Вместо этого используйте RecyclerView.setItemAnimator(ItemAnimator) . ( аосп/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. ( аосп/931259 )
  • Добавлена ​​новая перегрузка SmoothScrollBy: RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration) , которая позволяет указать длительность анимации в миллисекундах. ( аосп/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. ( аосп/1130728 )

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

  • Исправлена ​​проблема, из-за которой RecyclerView создавал повторяющиеся узлы доступности для дочерних элементов RecyclerView. ( аосп/1130618 )
  • Исправлена ​​проблема, из-за которой иерархии виртуальной доступности в RecyclerViews не работали.
  • Исправлена ​​проблема, из-за которой не использовались пользовательские 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) так что службы доступности точно уведомляются об изменениях прокрутки. ( аосп/1007823 )

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

  • Исправлена ​​серьезная ошибка переполнения стека, связанная с RecyclerView и специальными возможностями. ( аосп/1099577 )

Версия 1.1.0-beta02

7 августа 2019 г.

Выпущен androidx.recyclerview:recyclerview:1.1.0-beta02 . Коммиты, включенные в эту версию, можно найти здесь .

Новые возможности

  • RecyclerView теперь имеет атрибут стиля по умолчанию: recyclerViewStyle , который позволяет установить стиль по умолчанию в вашей теме.

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

  • Исправлена ​​ошибка, из-за которой RecyclerView не запрещал перехват касания при прокрутке, что приводило к прокрутке NestedScrollingParent. ( б/131115697 , аосп/1055911 )

Версия 1.1.0-бета01

2 июля 2019 г.

Выпущен androidx.recyclerview:recyclerview:1.1.0-beta01 . Коммиты, включенные в эту версию, можно найти здесь .

Новые возможности

  • RecyclerView теперь участвует во вложенной прокрутке, когда прокрутка инициируется через события доступности. ( аосп/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) , которая позволяет указать длительность анимации в миллисекундах. ( аосп/952807 )

Изменения API

  • GridLayoutManager и StaggeredGridLayoutManager больше не помечают элементы полного диапазона автоматически как заголовки в целях доступности ( aosp/969703 ).
  • Сохранять порядок выбора (по времени создания) в recyclerview-selection ( aosp/937279 )

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

  • Исправлена ​​ошибка, из-за которой RecyclerView перемещался с неправильной скоростью в ситуации вложенной прокрутки. ( аосп/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. ( аосп/931259 )

Изменения API

  • Добавить API для получения рисуемого DividerItemDecoration ( 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() . ( аосп/839414 )
  • RecyclerView.setLayoutTransition(LayoutTransition) формально считается устаревшим и вызывает исключение IllegalArgumentException при вызове с ненулевым значением. ( аосп/839414 )

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

  • Исправлена ​​ошибка в RV, из-за которой SmoothScroller никогда не останавливался ( aosp/843741 ).
  • Исправлена ​​ошибка, из-за которой SCROLL_STATE_IDLE нельзя было вызвать в конце анимации прокрутки. ( аосп/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-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-выбор 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 дочернего представления неожиданно вызывались во время активного выбора.
  • Обработчик мыши (выбор диапазона) > Грамотно обрабатывайте неожиданные прокрутки. ( б / 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 ).
  • Исправлена ​​проблема, из-за которой выбор не обновлялся с учетом элементов, удаленных из адаптера. ( б / 138932671 )
  • Исправлена ​​проблема, из-за которой элементы RecyclerView запускали события onClick, когда SelectionTracker имеет активный выбор ( b/161162268 ).
  • Теперь правильно обрабатывает onRequestDisallowInterceptTouchEvent
  • Исправлена ​​ошибка, из-за которой ”Cannot call this method in a scroll callback” отображалось во время прокрутки мышью по Q.
  • Обновлена ​​документация (особенно в 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.
    • Типы инструментов по умолчанию: ПАЛЕЦ для жестов и МЫШЬ для указателя.