Recyclerview
В этой таблице перечислены все артефакты в группе androidx.recyclerview
.
Артефакт | Стабильный выпуск | Кандидат на выпуск | Бета-версия | Альфа-релиз |
---|---|---|---|---|
просмотр переработчика | 1.3.2 | - | - | 1.4.0-альфа02 |
recyclerview-selection | 1.1.0 | - | - | 1.2.0-альфа01 |
Объявление зависимостей
Чтобы добавить зависимость от 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
- Устаревшие API
ViewCompat.LAYOUT_DIRECTION_
( I51710 , b/317055535 )
Новые возможности
- Поддержка переменной частоты обновления: 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.
- Типы инструментов по умолчанию: ПАЛЕЦ для жестов и МЫШЬ для указателя.