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 nowy problem, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Aby oddać głos na istniejący problem, kliknij 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 uaktualniania pojawią się ostrzeżenia dotyczące wtyczki Androida do obsługi Gradle (AGP), 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 z 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 oznaczaj wstępne pobieranie RV jako „forced – needed next frame”, jeśli ma być używane w następnej klatce, a więc powinno 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 uaktualniania pojawią się ostrzeżenia dotyczące wtyczki Androida do obsługi Gradle (AGP), 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 uaktualniania pojawią się ostrzeżenia dotyczące wtyczki Androida do obsługi Gradle (AGP), możesz je pominąć.
Nowe funkcje
- Obsługa zmiennej częstotliwości odświeżania: widok RecyclerView wywołuje teraz metodę
setFrameContentVelocitypodczas przewijania za pomocą klasy OverScroller (np. podczas zatrzymywania po szybkim przewijaniu 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 z 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 oznaczaj wstępne pobieranie RV jako „forced – needed next frame”, jeśli ma być używane w następnej klatce, a więc powinno 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
- Usługa
GestureDetectorCompatzostała wycofana, ponieważ usługaGestureDetectorjest dostępna 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
- Naprawiliśmy 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
- Dodano nowe metody
setDebugAssertionsEnabledisetVerboseLoggingEnabled, które mogą pomóc w debugowaniu problemów związanych zRecyclerVieww aplikacjach. (I514b9)
Poprawki błędów
- Naprawia awarie u użytkowników
ViewTreeLifecycleOwner(w tymComposeView) poprzez 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 różni się od wersji 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 masz obiektuViewHolder, np. w przypadku obiektuSpanSizeLookup(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ą ze źródłem 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 były one 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 w sytuacjach, w których 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 wyborze (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. Deweloperzy Kotlin powinni używać tego argumentu kompilatora, aby wymusić prawidłowe użycie:
-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 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órny margines wewnętrzny przesuwał prawą poświatę przewijania w górę do obszaru z marginesem wewnętrznym, zamiast w dół, aby uwzględnić margines wewnętrzny. (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) - Naprawiliś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 w sposób liniowy.
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 podawały użytkownikowi liczbę i indeks elementu, musisz samodzielnie wypełnić pola CollectionInfo i CollectionItemInfo.
Te obiekty nie są już wypełniane w ramach, ponieważ nie można 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
- Gdy rozmiar widocznego obszaru ulegnie zmianie, RecyclerView nie będzie już przyciągać widoków znajdujących się poza widocznym obszarem.
- 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 awarię w klasie ItemTouchHelper, która występowała po usunięciu jej z klasy RecyclerView podczas działania animacji 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 elementu 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 niej użyj 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 na układ, 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 zatwierdzenia.
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 RecyclerView nie blokował przechwytywania dotyku, gdy zagnieżdżone przewijanie wstępne powodowało przewijanie
NestedScrollingParent(b/138668210, aosp/1105373). Jest to korzystne dla 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). - Wstępne przewijanie zagnieżdżone nie jest już wykonywane, zanim gest przekroczy próg dotyku (b/139530818, aosp/1105373).
- Argumenty
dxidywysyłane do zagnieżdżonych reklam przed przewijaniem są zerowane, gdy element RecyclerView nie może przewijać w danym 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
RecyclerViewuczestniczy teraz w zagnieżdżonym przewijaniu, gdy przewijanie jest inicjowane przez zdarzenia związane z ułatwieniami dostępu. (aosp/973584)
Wersja 1.1.0-alpha06
5 czerwca 2019 r.
Publikacje androidx.recyclerview:recyclerview:1.1.0-alpha06 i androidx.recyclerview:recyclerview-selection:1.1.0-alpha06 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.
Publikacje androidx.recyclerview:recyclerview:1.1.0-alpha05 i androidx.recyclerview:recyclerview-selection:1.1.0-alpha05 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 rysowalnego
DividerItemDecoration(aosp/937282) - Wycofanie
LinearLayout.getExtraLayoutSpace(RecyclerVew.State)na rzecz nowego mechanizmu, który umożliwia uzyskanie niestandardowej dodatkowej przestrzeni układu po obu stronach. Nowa metoda toLinearLayout.calculateExtraLayoutSpace(RecyclerView.state, int[])(aosp/931259)
Poprawki błędów
- Uporządkowano 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 funkcję
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 elementu ViewHolder element ItemDelegate powiązany z
RecyclerViewAccessibilityDelegateelementu RecyclerView nie był powiązany z elementem itemView elementu 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.
Publikacje androidx.recyclerview 1.1.0-alpha01 i androidx.recyclerview-selection 1.1.0-alpha01
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ę podczas używania znaku
TransitionManagerdo zwijania i 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 dotyczących skrajnych przypadków 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
- Usunęliś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 przesyłanie 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ł aktywne zaznaczenie (b/161162268).
- Teraz prawidłowo obsługuje
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 utrudniał przewijanie elementu RecyclerView za pomocą gestu, 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ą przypisywać zachowania wskaźnika lub gesty do typów narzędzi innych 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 „pasywne” rysiki są w systemie wejściowym Androida traktowane jako narzędzie typu FINGER.
- Domyślne typy narzędzi to FINGER w przypadku gestów i MOUSE w przypadku wskaźnika.