Recyclerview
Ta tabela zawiera listę wszystkich artefaktów w grupie androidx.recyclerview.
| Artefakt | Wersja stabilna | Wersja kandydująca do publikacji | Wersja beta | Wersja Alfa |
|---|---|---|---|---|
| recyclerview | 1.4.0 | - | - | - |
| recyclerview-selection | 1.2.0 | - | - | 1.3.0-alpha01 |
Deklarowanie zależności
Aby dodać zależność od RecyclerView, musisz dodać do projektu repozytorium Maven Google. Więcej informacji znajdziesz w artykule Repozytorium Maven Google.
Dodaj zależności dotyczące potrzebnych artefaktów w pliku build.gradle aplikacji lub modułu:
Odlotowe
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" }
Kotlin
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") }
Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.
Opinia
Twoja opinia pomoże nam ulepszyć Jetpacka. Jeśli odkryjesz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nową kartę, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz dodać swój głos do istniejącego problemu, klikając przycisk gwiazdki.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Wersja 1.4
Wersja 1.4.0
15 stycznia 2025 r.
Publikacja androidx.recyclerview:recyclerview:1.4.0 Wersja 1.4.0 zawiera te zmiany.
Ważne zmiany od wersji RecyclerView 1.3.2
Adaptiveobsługa częstotliwości odświeżania:RecyclerViewteraz wywołujesetFrameContentVelocitypodczas przewijania za pomocąOverScroller(np. po szybkim przesunięciu lub płynnym przewijaniu). (I8f8a4)
Wersja 1.4.0-rc01
18 września 2024 r.
androidx.recyclerview:recyclerview:1.4.0-rc01, bez zmian od wersji 1.4.0-alpha02. Wersja 1.4.0-rc01 zawiera te zmiany.
Zmiany od wersji 1.3.2
Uwaga dotycząca zgodności: ta wersja będzie kompilowana tylko w przypadku pakietu SDK API 35 (Vanilla Ice Cream) lub nowszego. Jeśli podczas aktualizacji zobaczysz ostrzeżenia dotyczące wtyczki Androida do obsługi Gradle, możesz je pominąć.
Nowe funkcje
Adaptiveobsługa częstotliwości odświeżania:RecyclerViewteraz wywołujesetFrameContentVelocitypodczas przewijania za pomocąOverScroller(np. po szybkim przesunięciu lub płynnym przewijaniu). (I8f8a4)
Zmiany w interfejsie API
- Dodaj interfejs
RecyclerView$LayoutManager#isLayoutReversedAPI. (I4970e)
Inne zmiany
- Usunęliśmy ręczne określanie dostępu do nowych interfejsów API platformy, ponieważ odbywa się to automatycznie za pomocą modelowania interfejsu API podczas korzystania z R8 w AGP 7.3 lub nowszym (np. R8 w wersji 3.3) oraz w przypadku wszystkich kompilacji podczas korzystania z AGP 8.1 lub nowszego (np. D8 w wersji 8.1). Klientom, którzy nie korzystają z AGP, zalecamy przejście na D8 w wersji 8.1 lub nowszej. Więcej szczegółów znajdziesz w tym artykule. (Ia60e0, b/345472586)
- Dodaj typ widoku elementu do sekcji
RecyclerViewbind/create trace i oznacz wstępne pobieranie RV jako „forced - needed next frame”, jeśli mają być używane w następnej klatce, a więc powinny rozpocząć działanie jak najszybciej. (I8ec3e, b/309523615) - Zmień wartość
compileSdkna 35 (szczegóły znajdziesz w sekcji „Uwaga dotycząca zgodności” powyżej). 5dc41be
Wersja 1.4.0-beta01
21 sierpnia 2024 r.
androidx.recyclerview:recyclerview:1.4.0-beta01 została opublikowana bez zmian od wersji 1.4.0-alpha02. Wersja 1.4.0-beta01 zawiera te zmiany.
Uwaga dotycząca zgodności: ta wersja będzie kompilowana tylko w przypadku pakietu SDK API 35 (Vanilla Ice Cream) lub nowszego. Jeśli podczas aktualizacji zobaczysz ostrzeżenia dotyczące wtyczki Androida do obsługi Gradle, możesz je pominąć.
Wersja 1.4.0-alpha02
7 sierpnia 2024 r.
Publikacja androidx.recyclerview:recyclerview:1.4.0-alpha02 Wersja 1.4.0-alpha02 zawiera te zmiany.
Uwaga dotycząca zgodności: ta wersja będzie kompilowana tylko w przypadku pakietu SDK API 35 (Vanilla Ice Cream) lub nowszego. Jeśli podczas aktualizacji zobaczysz ostrzeżenia dotyczące wtyczki Androida do obsługi Gradle, możesz je pominąć.
Nowe funkcje
- Obsługa zmiennej częstotliwości odświeżania: widok RecyclerView wywołuje teraz
setFrameContentVelocitypodczas przewijania za pomocą klasy OverScroller (np. podczas zatrzymywania po szybkim przesunięciu lub płynnym przewijaniu). (I8f8a4)
Zmiany w interfejsie API
- Wycofane interfejsy API
ViewCompat.LAYOUT_DIRECTION_(I51710, b/317055535) - Dodaj interfejs
RecyclerView$LayoutManager#isLayoutReversedAPI. (I4970e)
Inne zmiany
- Usunęliśmy ręczne określanie dostępu do nowych interfejsów API platformy, ponieważ odbywa się to automatycznie za pomocą modelowania interfejsu API podczas korzystania z R8 w AGP 7.3 lub nowszym (np. R8 w wersji 3.3) oraz w przypadku wszystkich kompilacji podczas korzystania z AGP 8.1 lub nowszego (np. D8 w wersji 8.1). Klientom, którzy nie korzystają z AGP, zalecamy przejście na D8 w wersji 8.1 lub nowszej. Więcej szczegółów znajdziesz w tym artykule. (Ia60e0, b/345472586)
- Dodaj typ widoku elementu do sekcji
RecyclerViewbind/create trace i oznacz wstępne pobieranie RV jako „forced - needed next frame”, jeśli mają być używane w następnej klatce, a więc powinny rozpocząć działanie jak najszybciej. (I8ec3e, b/309523615) - Zmień wartość
compileSdkna 35 (szczegóły znajdziesz w sekcji „Uwaga dotycząca zgodności” powyżej). 5dc41be
Wkład zewnętrzny
- Środowisko wykonawcze
GestureDetectorCompatzostało wycofane, ponieważGestureDetectorjest dostępne wminSdk. (Icc4cd)
Wersja 1.4.0-alpha01
18 października 2023 r.
Publikacja androidx.recyclerview:recyclerview:1.4.0-alpha01 Wersja 1.4.0-alpha01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodaj interfejs
RecyclerView$LayoutManager#isLayoutReversedAPI. (I4970e)
Poprawki błędów
- Naprawiono błąd powodujący sporadyczne awarie podczas animacji (I42f22b) (również w wersji 1.3.2).
Wersja 1.3.2
Wersja 1.3.2
18 października 2023 r.
Publikacja androidx.recyclerview:recyclerview:1.3.2 Wersja 1.3.2 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązanie problemu powodującego sporadyczne awarie podczas animacji. (I42f22b)
Wersja 1.3.1
Wersja 1.3.1
26 lipca 2023 r.
Wersja androidx.recyclerview:recyclerview:1.3.1 została wydana bez zmian w stosunku do wersji 1.3.1-rc01. Wersja 1.3.1 zawiera te zatwierdzenia.
Informacje o poprzednich wersjach znajdziesz na naszej stronie z informacjami o wersji.
Wersja 1.3.1-rc01
24 maja 2023 r.
Publikacja androidx.recyclerview:recyclerview:1.3.1-rc01 Wersja 1.3.1-rc01 zawiera te zatwierdzenia.
Użytkownicy ViewPager2 muszą zaktualizować bibliotekę do wersji co najmniej 1.1.0-beta02, aby uniknąć awarii podczas aktualizacji do tej wersji RecyclerView.
Zmiany w interfejsie API
- Dodanie nowych metod
setDebugAssertionsEnabledisetVerboseLoggingEnabled, które mogą pomóc w debugowaniu problemów związanych zRecyclerVieww aplikacjach. (I514b9)
Poprawki błędów
- Naprawianie awarii u użytkowników
ViewTreeLifecycleOwner(w tymComposeView) przez tymczasowe ponowne dołączanie tymczasowo odłączonych widoków podczas wywoływaniaonBind. (I7244f2c, b/265347515, b/283288295)
Wersja 1.3.0
Wersja 1.3.0
8 marca 2023 r.
androidx.recyclerview:recyclerview:1.3.0, która nie zawiera zmian w porównaniu z wersją 1.3.0-rc01. Wersja 1.3.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.2.0
- Ta wersja zawiera ulepszenia wydajności (wcześniej uwzględnione w wersjach 1.3.0-alpha02 i 1.3.0-beta01) w przypadku używania z Jetpack Compose. Jeśli używasz Compose w wersji
1.2.0-beta02lub nowszej i korzystasz zMyComposeAdapteriDisposeOnViewTreeLifecycleDestroyedViewCompositionStrategyopisanych w poprzednich wytycznych dotyczących współdziałania, usuń je, ponieważ nie stanowią już ulepszenia w stosunku do stanu domyślnego. - Dodano nową metodę
ConcatAdapter.getWrappedAdapterAndPosition, która umożliwia pobieranie informacji o zawiniętym module reklamowym w sytuacjach, w których nie maszViewHolder, np. w przypadkuSpanSizeLookup(I2bd4c, b/191543920).
Wersja 1.3.0-rc01
21 września 2022 r.
Publikacja androidx.recyclerview:recyclerview:1.3.0-rc01 Wersja 1.3.0-rc01 zawiera te zatwierdzenia.
- Brak zmian od ostatniej wersji
Wersja 1.3.0-beta02
10 sierpnia 2022 r.
Publikacja androidx.recyclerview:recyclerview:1.3.0-beta02 Wersja 1.3.0-beta02 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Usunięto adnotacje o możliwości przyjmowania wartości null dodane w wersji 1.3.0-beta01, ponieważ stanowiły one znaczącą zmianę niezgodną z kodem źródłowym dla użytkowników języka Kotlin (I7a258,I1557e6,I8db76).
Wersja 1.3.0-beta01
29 czerwca 2022 r.
Publikacja androidx.recyclerview:recyclerview:1.3.0-beta01 Wersja 1.3.0-beta01 zawiera te zatwierdzenia.
Nowe funkcje
- Ta wersja beta zawiera ulepszenia wydajności (wcześniej dostępne w wersji 1.3.0-alpha02 w przypadku używania z Jetpack Compose). Jeśli używasz Compose w wersji
1.2.0-beta02lub nowszej i korzystasz zMyComposeAdapteriDisposeOnViewTreeLifecycleDestroyedViewCompositionStrategyopisanych w poprzednich wytycznych dotyczących współdziałania, usuń je, ponieważ nie stanowią już ulepszenia w stosunku do stanu domyślnego.
Zmiany w interfejsie API
- Dodaliśmy adnotacje dotyczące możliwości przyjmowania wartości null dla wielu metod i parametrów, aby poprawić ostrzeżenia narzędzia lint dla użytkowników Javy i interoperacyjność dla użytkowników Kotlina. Dla niektórych użytkowników języka Kotlin może to być zmiana powodująca niezgodność z wcześniejszymi wersjami, a dla niektórych użytkowników języka Java może to spowodować dodatkowe ostrzeżenia lub błędy narzędzia lint. (I61829, b/236487044; Ia0b6f; I6f119, b/236487209; Ibe1de, b/236487210)
Poprawki błędów
- Zadbaj o to, aby usługi ułatwień dostępu traktowały siatki jako siatki, ustawiając nazwę klasy informacji o węźle ułatwień dostępu. (I12812)
Wersja 1.3.0-alpha02
6 kwietnia 2022 roku
Publikacja androidx.recyclerview:recyclerview:1.3.0-alpha02 Wersja 1.3.0-alpha02 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodaje eksperymentalne metody
BuildCompatdla przyszłych pakietów SDK (Iafd82, b/207528937). - Dodano nową metodę
ConcatAdapter.getWrappedAdapterAndPosition, która umożliwia pobieranie informacji o opakowanym module wyświetlania reklam w sytuacjach, gdy nie masz obiektu ViewHolder, np. w przypadkuSpanSizeLookup(I2bd4c, b/191543920).
Poprawki błędów
- Integracja z nową biblioteką AndroidX PoolingContainer (Ib89d2)
- Dostosowuje odległość przewijania dla działania związanego z ułatwieniami dostępu (If74ae).
Wersja 1.3.0-alpha01
15 września 2021 r.
Publikacja androidx.recyclerview:recyclerview:1.3.0-alpha01 Wersja 1.3.0-alpha01 zawiera te zatwierdzenia.
Nowe funkcje
- Dodaliśmy obsługę rozciągania przewijania w widoku RecyclerView. (Iab877)
RecyclerView-Selection w wersji 1.3.0
Wersja 1.3.0-alpha01
17 grudnia 2025 r.
Publikacja androidx.recyclerview:recyclerview-selection:1.3.0-alpha01 Wersja 1.3.0-alpha01 zawiera te zmiany.
Zmiany w interfejsie API
- Zezwalaj na usuwanie istniejącego wyboru przez element interaktywny w wybranym obszarze (I0eae7, b/389814214) Ta funkcja zapewnia deweloperom większą kontrolę nad tym, czy po kliknięciu
RecyclerVieww celu wybrania elementu inne wybrane już elementy pozostaną wybrane, czy zostaną odznaczone.
RecyclerView-Selection w wersji 1.2.0
Wersja 1.2.0
20 maja 2025 r.
Publikacja androidx.recyclerview:recyclerview-selection:1.2.0 Wersja 1.2.0 zawiera te zmiany.
Ważne zmiany od wersji 1.1.0
- Naprawianie sytuacji, w których niewielkie ruchy myszy powodują, że kliknięcia są traktowane jako przeciągnięcia.
- Rozwiązanie problemu polegającego na tym, że mapowanie klucza/pozycji w KeyProvider było tracone, gdy wpis nie został jeszcze ponownie użyty.
Wersja 1.2.0-rc01
7 maja 2025 r.
Publikacja androidx.recyclerview:recyclerview-selection:1.2.0-rc01 Wersja 1.2.0-rc01 zawiera te zmiany.
Poprawki błędów
- Naprawianie sytuacji, w których niewielkie ruchy myszy powodują, że kliknięcia są traktowane jako przeciągnięcia. (Ie9106)
Wersja 1.2.0-beta01
9 kwietnia 2025 r.
Publikacja androidx.recyclerview:recyclerview-selection:1.2.0-beta01 Wersja 1.2.0-beta01 zawiera te zmiany.
Zmiany w interfejsie API
- Wycofane interfejsy API
ViewCompat.LAYOUT_DIRECTION_(I51710, b/317055535)
Poprawki błędów
- Ta biblioteka korzysta teraz z adnotacji o wartości null JSpecify, które są używane w typie. Aby wymusić prawidłowe użycie, deweloperzy Kotlin powinni użyć tego argumentu kompilatora:
-Xjspecify-annotations=strict(jest to domyślny argument począwszy od wersji 2.1.0 kompilatora Kotlin). (I03b80, b/326456246)
Wersja 1.2.0-alpha01
5 maja 2021 roku
Publikacja androidx.recyclerview:recyclerview-selection:1.2.0-alpha01 Wersja 1.2.0-alpha01 zawiera te zmiany.
Poprawki błędów
- Rozwiązanie problemu polegającego na tym, że mapowanie klucza/pozycji w KeyProvider było tracone, gdy wpis nie został jeszcze ponownie użyty. (b/145767095)
Wersja 1.2.1
Wersja 1.2.1
2 czerwca 2021 r.
Publikacja androidx.recyclerview:recyclerview:1.2.1 Wersja 1.2.1 zawiera te zatwierdzenia.
Poprawki błędów
ViewHolderwConcatAdapterzwracają teraz prawidłową pozycję adaptera, gdy są wysyłane w zapytaniu w wywołaniu zwrotnymonViewRecycled. (b/187339376)
Wersja 1.2.0
Wersja 1.2.0
7 kwietnia 2021 r.
Publikacja androidx.recyclerview:recyclerview:1.2.0 Wersja 1.2.0 zawiera te zatwierdzenia.
Główne zmiany od wersji 1.1.0
ConcatAdapter: ten nowy adapter umożliwia łatwe łączenie wielu adapterów w tym samym widoku RecyclerView. Więcej informacji znajdziesz w poście na blogu.
- W ramach tej zmiany wycofujemy
ViewHolder.getAdapterPositioni zastępujemy ją 2 nowymi metodami:- getBindingAdapterPosition zwraca pozycję względem adaptera, który powiązał ten element.
- getAbsoluteAdapterPosition zwraca pozycję względem całego widoku RecyclerView.
Przywracanie stanu w trybie pasywnym: adapter RecyclerView może teraz opóźnić przywracanie stanu do momentu załadowania jego zawartości. Aby dowiedzieć się więcej, zapoznaj się z dokumentacją.
Wersja 1.2.0-rc01
24 marca 2021 r.
Publikacja androidx.recyclerview:recyclerview:1.2.0-rc01 Wersja 1.2.0-rc01 zawiera te zatwierdzenia.
Poprawki błędów
ConcatAdapter.Config.Builderma teraz wartości domyślne zgodne zConfig.DEFAULT(b/157169835).
Wersja 1.2.0-beta02
24 lutego 2021 r.
Publikacja androidx.recyclerview:recyclerview:1.2.0-beta02 Wersja 1.2.0-beta02 zawiera te zmiany.
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że górne dopełnienie przesuwało w górę efekt po przewinięciu w prawo do obszaru dopełnienia zamiast w dół, aby uwzględnić dopełnienie. (I6b61d, b/118399122)
Wersja 1.2.0-beta01
2 grudnia 2020 r.
androidx.recyclerview:recyclerview:1.2.0-beta01 został opublikowany bez zmian od 1.2.0-alpha06. Wersja 1.2.0-beta01 zawiera te zatwierdzenia.
Wersja 1.2.0-alpha06
1 października 2020 roku
Publikacja androidx.recyclerview:recyclerview:1.2.0-alpha06 Wersja 1.2.0-alpha06 zawiera te zmiany.
Nowe funkcje
- Dodaliśmy obsługę dodawania wielu obiektów RecyclerListener. (I70ad8, b/145767095)
Zmiany w interfejsie API
- Wycofano metodę RecyclerView.setRecyclerListener(RecyclerListener). (I70ad8, b/145767095)
Wersja 1.2.0-alpha05
22 lipca 2020 r.
Publikacja androidx.recyclerview:recyclerview:1.2.0-alpha05 Wersja 1.2.0-alpha05 zawiera te zmiany.
Poprawki błędów
- Rozwiązaliśmy problem polegający na tym, że jeśli element RecyclerView zawiera tylko 1 element i jest on zaznaczony, zaznaczenie kolejnego lub poprzedniego elementu nie powoduje przeniesienia zaznaczenia. (6f36b3)
- Usunięto
ArrayIndexOutOfBoundsExceptionwStaggeredGridLayoutManager(49b601, b/122303625, b/74877618, b/160193663, b/37086625) - Usunęliśmy błąd pomiaru, który w określonych okolicznościach powodował, że element RecyclerView nie wyświetlał elementów podrzędnych. (89040c, b/138734786)
Wkład zewnętrzny
- Dziękujemy Kolinowi Krewinkelowi z Facebooka za wkład.
Wersja 1.2.0-alpha04
24 czerwca 2020 r.
Publikacja androidx.recyclerview:recyclerview:1.2.0-alpha04 Wersja 1.2.0-alpha04 zawiera te zmiany.
Zmiany w interfejsie API
MergeAdapterzostała zmieniona naConcatAdapter, aby uniknąć nieporozumień związanych z różnymi sposobami łączenia danych (c0540c, b/158019211).
Poprawki błędów
- Ulepszenia automatycznego przewijania, gdy wszystkie widoczne elementy zostaną usunięte (fe8670, b/154124815)
Wersja 1.2.0-alpha03
29 kwietnia 2020 r.
Publikacja androidx.recyclerview:recyclerview:1.2.0-alpha03 Wersja 1.2.0-alpha03 zawiera te zmiany.
Nowe funkcje
- Klasa RecyclerView ma teraz metodę
nestedScrollBy, która umożliwia programowe przewijanie współpracujące z przewijaniem zagnieżdżonym: (Ibaa58)
Wersja 1.2.0-alpha02
1 kwietnia 2020 r.
Publikacja androidx.recyclerview:recyclerview:1.2.0-alpha02 Wersja 1.2.0-alpha02 zawiera te zmiany.
Ta i nowsze wersje RecyclerView nie są zgodne ze starszymi wersjami ViewPager2. Jeśli obecnie używasz wersji androidx.viewpager2:viewpager2:1.0.0 lub starszej, zaktualizuj ją do wersji androidx.viewpager2:viewpager2:1.1.0-alpha01.
Nowe funkcje
MergeAdapter
- MergeAdapter: nowy adapter RecyclerView, który może łączyć wiele adapterów liniowo.
MyAdapter adapter1 = ...; AnotherAdapter adapter2 = ...; MergeAdapter merged = new MergeAdapter(adapter1, adapter2); recyclerView.setAdapter(mergedAdapter);W tym przykładzie MergeAdapter wyświetli elementy z
adapter1, a potem zadapter2.RecyclerView.Adapterprzywracanie stanu leniwego:Dodano nowy interfejs API do klasy
RecyclerView.Adapter, który umożliwia adapterowi kontrolowanie, kiedy należy przywrócić stan układu.Możesz na przykład zadzwonić:
myAdapter.setStateRestorationStrategy(StateRestorationStrategy.WHEN_NOT_EMPTY);aby RecyclerView czekał, aż Adapter nie będzie pusty, zanim przywróci pozycję przewijania.
Informacje CollectionInfo i CollectionItemInfo nie będą już domyślnie wypełniane.
Jeśli chcesz, aby usługi ułatwień dostępu (np. Talkback) nadal informowały użytkownika o liczbie i indeksie elementu, musisz samodzielnie wypełnić pola CollectionInfo i CollectionItemInfo.
Te obiekty nie są już wypełniane w ramach, ponieważ nie mogą one określić liczby elementów widzianych przez użytkownika (np. separatorów, nagłówków lub elementów RecyclerView, które reprezentują wiele elementów).
Poprawki błędów
- RecyclerView nie zakotwicza już widoków poza widocznym obszarem, gdy zmieni się rozmiar widocznego obszaru.
- Usunięto błąd w klasie DiffUtil, który mógł powodować nieprawidłowe obliczanie różnic, gdy oryginalny element z pierwszej listy był wielokrotnie powielany na drugiej liście. (b/123376278)
Wersja 1.2.0-alpha01
18 grudnia 2019 r.
Publikacja androidx.recyclerview:recyclerview:1.2.0-alpha01 Wersja 1.2.0-alpha01 zawiera te zmiany.
Poprawki błędów
- Naprawiono drobne problemy z szybkim przewijaniem związane z rysowaniem w trybie od prawej do lewej i dokładnością dotyku (b/143789932, aosp/1130438).
- Naprawiono błąd powodujący awarię klasy ItemTouchHelper po usunięciu z klasy RecyclerView podczas działania animacji klasy ItemTouchHelper (b/140447176, aosp/1167575).
Wersja 1.1.0
Wersja 1.1.0
20 listopada 2019 r.
Publikacja androidx.recyclerview:recyclerview:1.1.0 Wersja 1.1.0 zawiera te zmiany.
Ważne zmiany od wersji 1.0.0
PagerSnapHelperiLinearSnapHelperuwzględniają teraz dopełnienie RecyclerView niezależnie od wartościclipToPadding(b/139452422, b/139012032, aosp/1103182, aosp/1106715, aosp/1130728).RecyclerView.setLayoutTransition(LayoutTransition)jest formalnie wycofana i w przypadku wywołania z wartością inną niż null zgłosi błądIllegalArgumentException. Zamiast niego używaj zasadyRecyclerView.setItemAnimator(ItemAnimator). (aosp/839414)- aosp/723649: klasa RecyclerView implementuje teraz interfejs
NestedScrollingChild3, dzięki czemu może otrzymywać informacje o tym, kiedy wszystkie zagnieżdżone elementy nadrzędne przewijania zatrzymały zużywanie odległości przewijania zagnieżdżonego. Jeśli kod dewelopera obecnie zastępujeRecyclerView.onNestedScroll(View, int, int, int, int, int), prawdopodobnie nie będzie już wywoływany, a zamiast niego będzie zastępowanyRecyclerView.onNestedScroll(View, int, int, int, int, int, int[]). - Element RecyclerView ma teraz domyślny atrybut stylu:
recyclerViewStyle, który umożliwia ustawienie domyślnego stylu w motywie. - Interfejs ViewCompat accessibility actions API nie powoduje już problemów z elementem ItemDelegate w RecyclerView.
LinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[])można zastąpić, aby dostosować ilość dodatkowego miejsca, które ma być dodane po obu stronach powiązanego widoku RecyclerView. (aosp/931259)- Dodano nowe przeciążenie funkcji smoothScrollBy:
RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration), które umożliwia określenie czasu trwania animacji w milisekundach. (aosp/952807)
Wersja 1.1.0-rc01
23 października 2019 r.
Publikacja androidx.recyclerview:recyclerview:1.1.0-rc01 Wersja 1.1.0-rc01 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiono błąd „Aplikacja nie odpowiada” podczas zastępowania
RecyclerViewAccessibilityDelegate.ItemDelegate(aosp/1138057, aosp/1133434)
Wersja 1.1.0-beta05
9 października 2019 r.
Publikacja androidx.recyclerview:recyclerview:1.1.0-beta05 Wersja 1.1.0-beta05 zawiera te zmiany.
Zmiany w interfejsie API
- W odpowiedzi na zgłoszenia aosp/1106715 i aosp/1103182 klasy LinearSnapHelper i PagerSnapHelper będą teraz zwracać widok znajdujący się na środku granic RecyclerView, pomniejszony o wypełnienie, niezależnie od wartości clipToPadding. (aosp/1130728)
Poprawki błędów
- Rozwiązaliśmy problem polegający na tym, że element RecyclerView generował zduplikowane węzły ułatwień dostępu dla elementów podrzędnych elementu RecyclerView. (aosp/1130618)
- Rozwiązaliśmy problem, który powodował, że wirtualne hierarchie ułatwień dostępu w widokach RecyclerView nie działały.
- Rozwiązaliśmy problem, który powodował, że nie były używane niestandardowe delegaty elementów.
Wersja 1.1.0-beta04
5 września 2019 r.
Publikacja androidx.recyclerview:recyclerview:1.1.0-beta04 Zatwierdzenia zawarte w tej wersji znajdziesz tutaj.
Poprawki błędów
- Funkcje
PagerSnapHelperiLinearSnapHelperuwzględniają teraz dopełnienie elementu RecyclerView niezależnie od wartości parametruclipToPadding(b/139452422, b/139012032, aosp/1103182, aosp/1106715). - Usunęliśmy błąd, który powodował, że widok RecyclerView nie blokował przechwytywania dotyku, gdy zagnieżdżone przewijanie wstępne powodowało przewijanie widoku
NestedScrollingParent(b/138668210, aosp/1105373). Jest to korzystne w przypadku bibliotek takich jak ViewPager2. - Element RecyclerView zawsze przechodzi do stanu
SCROLL_STATE_DRAGGING, zanim zostaną wysłane zagnieżdżone przewijania wstępne (aosp/1105373). - Zagnieżdżone przewijanie wstępne nie jest już wykonywane, zanim gest przekroczy próg dotyku (b/139530818, aosp/1105373).
- Argumenty
dxidywysyłane do zagnieżdżonych elementów wyświetlanych przed przewinięciem są zerowane, gdy element RecyclerView nie może przewijać w tym kierunku (aosp/1105373).
Wersja 1.1.0-beta03
15 sierpnia 2019 r.
Publikacja androidx.recyclerview:recyclerview:1.1.0-beta03 Zatwierdzenia zawarte w tej wersji znajdziesz tutaj.
Zmiany w interfejsie API
- Widok RecyclerView wysyła teraz odległości przewijania za pomocą metody
View.onScrollChanged(int l, int t, int oldl, int oldt), dzięki czemu usługi ułatwień dostępu są dokładnie powiadamiane o zmianach przewijania. (aosp/1007823)
Poprawki błędów
- Usunęliśmy poważny błąd przepełnienia stosu związany z elementem RecyclerView i ułatwieniami dostępu. (aosp/1099577)
Wersja 1.1.0-beta02
7 sierpnia 2019 r.
Publikacja androidx.recyclerview:recyclerview:1.1.0-beta02 Zatwierdzenia zawarte w tej wersji znajdziesz tutaj.
Nowe funkcje
- Element RecyclerView ma teraz domyślny atrybut stylu:
recyclerViewStyle, który umożliwia ustawienie domyślnego stylu w motywie.
Poprawki błędów
- Rozwiązaliśmy błąd, który powodował, że element RecyclerView nie blokował przechwytywania dotyku, gdy przewijanie go powodowało przewijanie elementu NestedScrollingParent. (b/131115697, aosp/1055911)
Wersja 1.1.0-beta01
2 lipca 2019 r.
Publikacja androidx.recyclerview:recyclerview:1.1.0-beta01 Zatwierdzenia zawarte w tej wersji znajdziesz tutaj.
Nowe funkcje
RecyclerViewobsługuje teraz zagnieżdżone przewijanie, gdy jest ono inicjowane przez zdarzenia związane z ułatwieniami dostępu. (aosp/973584)
Wersja 1.1.0-alpha06
5 czerwca 2019 r.
androidx.recyclerview:recyclerview:1.1.0-alpha06 i androidx.recyclerview:recyclerview-selection:1.1.0-alpha06 zostały opublikowane. Zatwierdzenia zawarte w tej wersji znajdziesz tutaj.
Nowe funkcje
- Dodano nowe przeciążenie funkcji smoothScrollBy:
RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration), które umożliwia określenie czasu trwania animacji w milisekundach. (aosp/952807)
Zmiany w interfejsie API
GridLayoutManageriStaggeredGridLayoutManagernie oznaczają już automatycznie elementów obejmujących całą szerokość jako nagłówków na potrzeby ułatwień dostępu (aosp/969703).- Zachowaj kolejność wyboru (według czasu utworzenia) w
recyclerview-selection(aosp/937279)
Poprawki błędów
- Usunęliśmy błąd polegający na tym, że element
RecyclerViewbył przesuwany z nieprawidłową prędkością w przypadku zagnieżdżonego przewijania. (aosp/961642) - Poprawiono stabilność
recyclerview-selection(aosp/960213, aosp/926296)
Wersja 1.1.0-alpha05
7 maja 2019 r.
androidx.recyclerview:recyclerview:1.1.0-alpha05 i androidx.recyclerview:recyclerview-selection:1.1.0-alpha05 zostały opublikowane. Zatwierdzenia zawarte w tej wersji znajdziesz tutaj.
Nowe funkcje
LinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[])można zastąpić, aby dostosować ilość dodatkowego miejsca na układ, które ma być dodane po obu stronach powiązanego widoku RecyclerView. (aosp/931259)
Zmiany w interfejsie API
- Dodaj interfejs API do pobierania elementu
DividerItemDecorationdrawable (aosp/937282) - Wycofaj
LinearLayout.getExtraLayoutSpace(RecyclerVew.State)na rzecz nowego mechanizmu, który umożliwia dostosowanie dodatkowej przestrzeni układu po obu stronach. Nowa metoda toLinearLayout.calculateExtraLayoutSpace(RecyclerView.state, int[])(aosp/931259)
Poprawki błędów
- Ulepszono wybór gestów (aosp/940781)
- Zachowaj kolejność wyboru (według czasu utworzenia) (b/128455535)
Wersja 1.1.0-alpha04
3 kwietnia 2019 r.
Publikacja androidx.recyclerview:recyclerview:1.1.0-alpha04 Zatwierdzenia zawarte w tej wersji znajdziesz tutaj.
Poprawki błędów
- Wcześniej interfejs RV OnItemTouchListener nie mógł przechwytywać zdarzenia ACTION_UP, co uniemożliwiało blokowanie przez interfejs OnItemTouchListener innego kodu przed reagowaniem na zdarzenie ACTION_UP. Problem został rozwiązany: (aosp/916137)
Wersja 1.1.0-alpha03
13 marca 2019 r.
Publikacja androidx.recyclerview:recyclerview:1.1.0-alpha03 Pełną listę zmian zawartych w tej wersji znajdziesz tutaj.
Nowe funkcje
GridLayoutManager: zgoda użytkownika, dokładniejsze szacowanie wymiarów paska przewijaniaGridLayoutManager(aosp/838836):- Wykorzystuje informacje o zakresie do oszacowania wymiarów paska przewijania w przypadku elementu
GridLayoutManager. - Aby włączyć tę funkcję, wywołaj
GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean), przekazując wartość „true”. - Więcej informacji znajdziesz w dokumentacji na stronie
GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean).
- Wykorzystuje informacje o zakresie do oszacowania wymiarów paska przewijania w przypadku elementu
Poprawki błędów
- Ułatwienia dostępu: wystąpił błąd, w wyniku którego po ponownym użyciu i ponownym powiązaniu obiektu ViewHolder element ItemDelegate powiązany z
RecyclerViewAccessibilityDelegateelementu RecyclerView nie był powiązany z elementem itemView obiektu ViewHolder, co powodowało problemy z ułatwieniami dostępu. Problem został już rozwiązany (aosp/917740).
Wersja 1.1.0-alpha02
30 stycznia 2019 r.
Publikacja androidx.recyclerview:recyclerview 1.1.0-alpha02
Zmiany w interfejsie API
- Metody
RecyclerView.setLayoutFrozen(boolean)iRecyclerView.isLayoutFrozen()zostały wycofane na rzecz metodRecyclerView.suppressLayout(boolean)iRecyclerView.isLayoutSuppressed(). (aosp/839414) RecyclerView.setLayoutTransition(LayoutTransition)jest formalnie wycofana i w przypadku wywołania z wartością inną niż null zgłosi błądIllegalArgumentException. (aosp/839414)
Poprawki błędów
- Naprawienie błędu w RV, który powodował, że
SmoothScrollernigdy nie było zatrzymywane (aosp/843741) - Usunęliśmy błąd, który powodował, że funkcja
SCROLL_STATE_IDLEmogła nie być wywoływana na końcu animacji przewijania. (aosp/812576)
Wersja 1.1.0-alpha01
3 grudnia 2018 r.
androidx.recyclerview 1.1.0-alpha01 i androidx.recyclerview-selection 1.1.0-alpha01 zostały opublikowane.
androidx.recyclerview 1.1.0-alpha01
Zmiany w interfejsie API
- aosp/723649: klasa RecyclerView implementuje teraz interfejs
NestedScrollingChild3, dzięki czemu może otrzymywać informacje o tym, kiedy wszystkie zagnieżdżone elementy nadrzędne przewijania zatrzymały zużywanie odległości przewijania zagnieżdżonego. Jeśli kod dewelopera obecnie zastępujeRecyclerView.onNestedScroll(View, int, int, int, int, int), prawdopodobnie nie będzie już wywoływany, a zamiast niego będzie zastępowanyRecyclerView.onNestedScroll(View, int, int, int, int, int, int[]).
Poprawki błędów
- Usunięto awarię, która występowała podczas używania znaku
TransitionManagerdo zwijania lub rozwijania elementu wRecyclerView(b/37129527). - Usunęliśmy błąd, który powodował, że działanie
RecyclerView.OnItemTouchListenerbyło niezgodne z działaniemonInterceptTouchEventionTouchEventw systemie widoków (aosp/721235). - Naprawiono kilka błędów w skrajnych przypadkach związanych z płynnym przewijaniem (aosp/729718, aosp/747168, aosp/812576).
- Naprawiono strategię przyciągania w
PagerSnapHelper, aby obsługiwać nietypowe widoki podrzędne (aosp/795752).
androidx.recyclerview-selection 1.1.0-alpha01
Poprawki błędów
- Naprawiliśmy błąd
ConcurrentModificationException, który występował, gdy zbiór danych zmieniał się po usunięciu zaznaczenia.
RecyclerView-Selection w wersji 1.1.0
RecyclerView-Selection w wersji 1.1.0
27 stycznia 2021 r.
Publikacja androidx.recyclerview:recyclerview-selection:1.1.0 Wersja 1.1.0 zawiera te zmiany.
Główne zmiany od wersji 1.0.0
- Liczne ulepszenia dotyczące stabilności.
- Wycofaliśmy metody
withGestureTooltypesiwithPointerTooltypesSelectionTracker.Builder. Te metody zostaną usunięte w przyszłej wersji.
RecyclerView-Selection w wersji 1.1.0-rc03
1 października 2020 roku
Publikacja androidx.recyclerview:recyclerview-selection:1.1.0-rc03 Wersja 1.1.0-rc03 zawiera te zatwierdzenia.
Poprawki błędów
Dziękujemy Stefanowi Kieslerowi za testowanie poprawek i przekazywanie opinii.
- Rozwiązaliśmy problem polegający na tym, że w trakcie aktywnego wyboru nieoczekiwanie wywoływane były elementy OnClickListener widoku podrzędnego.
- Moduł obsługi myszy (wybór pasma) > Prawidłowa obsługa nieoczekiwanych przewinięć. (b/167821507)
RecyclerView-Selection w wersji 1.1.0-rc02
2 września 2020 r.
Publikacja androidx.recyclerview:recyclerview-selection:1.1.0-rc02 Wersja 1.1.0-rc02 zawiera te zatwierdzenia.
Najważniejsze informacje
- Usunięto kilka problemów z obsługą danych wejściowych, które pojawiły się w wersji 1.0.
- Zaktualizowaliśmy bibliotekę, aby uwzględniała
onRequestDisallowInterceptTouchEvent, co pozwala na jej bezproblemowe współdziałanie z klasą ItemTouchHelper (wystarczy przesunąć element!).
Poprawki błędów
- Rozwiązaliśmy problem polegający na tym, że biblioteka wyboru błędnie interpretowała zdarzenia
GestureDetector, co powodowało utratę kliknięć podczas aktywnego wyboru (b/165030422). - Rozwiązaliśmy problem polegający na tym, że wybór nie był aktualizowany w celu odzwierciedlenia elementów usuniętych z adaptera. (b/138932671)
- Rozwiązaliśmy problem polegający na tym, że elementy RecyclerView wywoływały zdarzenia onClick, gdy SelectionTracker miał aktywny wybór (b/161162268).
- Prawidłowa obsługa
onRequestDisallowInterceptTouchEvent - Rozwiązaliśmy problem polegający na tym, że podczas przewijania myszą na klawiaturze Q pojawiał się znak
”Cannot call this method in a scroll callback”. - Zaktualizowano dokumentację (zwłaszcza w
StableIdKeyProvider), aby jasno określić wymagania dotyczące instancji RecyclerView.
Recyclerview-Selection w wersji 1.1.0-rc01
5 lutego 2020 r.
Publikacja androidx.recyclerview:recyclerview-selection:1.1.0-rc01 Wersja 1.1.0-rc01 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że przewijanie elementu RecyclerView za pomocą gestu było utrudnione, jeśli wchodził on w interakcję z przewijanym elementem AppBarLayout (aosp/1193934).
RecyclerView-Selection w wersji 1.1.0-beta01
4 grudnia 2019
Publikacja androidx.recyclerview:recyclerview-selection:1.1.0-beta01 Wersja 1.1.0-beta01 zawiera te zmiany.
Ogólne ulepszenia stabilności związane z kontrolami zabezpieczającymi i zarządzaniem stanem wewnętrznym.
Poprawki błędów
- Ulepszono zarządzanie stanem biblioteki i interpretację zdarzeń CANCEL, co zwiększa stabilność.
Zmiany w interfejsie API
- Dodano parametr typu klucza wyboru do klas i metod, w których go brakowało.
- Wycofane metody:
- SelectionTracker.Builder#withPointerTooltype
- SelectionTracker.Builder#withGestureTooltype
- Te metody zostały wprowadzone z myślą o tym, że deweloperzy mogą mapować zachowania wskaźnika lub gesty na typy narzędzi inne niż domyślne*. Intencje były dobre, ale po dalszym użytkowaniu okazało się, że oczekiwania użytkowników dotyczące zachowania danych wejściowych są bardzo specyficzne dla danego typu narzędzia. Ponadto w systemie wejściowym Androida rysiki „pasywne” są traktowane jako narzędzie typu FINGER.
- Domyślne typy narzędzi to FINGER w przypadku gestów i MOUSE w przypadku wskaźnika.