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.3.2 | 1.4.0-rc01 | - | - |
recyclerview-selection | 1.1.0 | - | - | 1.2.0-alpha01 |
Deklarowanie zależności
Aby dodać zależność od RecyclerView, musisz dodać repozytorium Google Maven do projektu. Więcej informacji znajdziesz w repozytorium Maven firmy Google.
Dodaj zależności dla artefaktów, których potrzebujesz, w pliku build.gradle
aplikacji lub modułu:
Odlotowe
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" }
Kotlin
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") }
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 zauważysz 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. Możesz dodać swój głos do istniejącego problemu, klikając przycisk z gwiazdką.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Wersja 1.4
Wersja 1.4.0-rc01
18 września 2024 r.
androidx.recyclerview:recyclerview:1.4.0-rc01
została wydana bez zmian od wersji 1.4.0-alpha02. Wersja 1.4.0-rc01 zawiera te komisy.
Zmiany od wersji 1.3.2
Uwaga dotycząca zgodności: ta wersja będzie kompilowana tylko z pakietem SDK API 35 (Vanilla Ice Cream) lub nowszym. Jeśli podczas aktualizacji zobaczysz ostrzeżenia dotyczące AGP (Android Gradle Plugin), możesz je pominąć.
Nowe funkcje
- Obsługa częstotliwości odświeżania
Adaptive
:RecyclerView
wywołuje terazsetFrameContentVelocity
, gdy przewija się za pomocąOverScroller
(np. po użyciu gestu przesunięcia lub płynnego przewijania). (I8f8a4)
Zmiany w interfejsie API
- Dodaj interfejs API
RecyclerView$LayoutManager#isLayoutReversed
. (I4970e)
Inne zmiany
- Usunięto ręczne określanie dostępu do nowych interfejsów API platformy, ponieważ odbywa się to automatycznie za pomocą modelowania interfejsu API, gdy korzystasz z R8 z AGP 7.3 lub nowszej wersji (np. R8 w wersji 3.3) oraz we wszystkich wersjach kompilacji, gdy korzystasz z AGP 8.1 lub nowszej wersji (np. D8 w wersji 8.1). Klienci, którzy nie korzystają z AGP, powinni zaktualizować D8 do wersji 8.1 lub nowszej. Więcej szczegółów znajdziesz w tym artykule. (Ia60e0, b/345472586)
- Dodaj typ widoku elementu do
RecyclerView
, aby powiązać lub utworzyć sekcje śledzenia, i oznacz wstępny odczyt RV jako „wymuszony – potrzebny w następnym klatce”, jeśli ma być użyty w następnej klatce i powinien zacząć działać jak najszybciej. (I8ec3e, b/309523615) - Zmień wartość właściwości
compileSdk
na 35 (szczegóły znajdziesz w sekcji „Uwaga o zgodnności” powyżej). 5dc41be
Wersja 1.4.0-beta01
21 sierpnia 2024 r.
androidx.recyclerview:recyclerview:1.4.0-beta01
została wydana bez zmian od wersji 1.4.0-alpha02. Wersja 1.4.0-beta01 zawiera te komity.
Uwaga dotycząca zgodności: ta wersja będzie kompilowana tylko z pakietem SDK API 35 (Vanilla Ice Cream) lub nowszym. Jeśli podczas aktualizacji zobaczysz ostrzeżenia dotyczące AGP (Android Gradle Plugin), możesz je pominąć.
Wersja 1.4.0-alpha02
7 sierpnia 2024 r.
androidx.recyclerview:recyclerview:1.4.0-alpha02
został zwolniony. Wersja 1.4.0-alpha02 zawiera te komity.
Uwaga dotycząca zgodności: ta wersja będzie kompilowana tylko z pakietem SDK API 35 (Vanilla Ice Cream) lub nowszym. Jeśli podczas aktualizacji zobaczysz ostrzeżenia dotyczące AGP (Android Gradle Plugin), możesz je pominąć.
Nowe funkcje
- Obsługa zmiennej częstotliwości odświeżania: RecyclerView wywołuje teraz funkcję
setFrameContentVelocity
, gdy przewija się za pomocą OverScroller (np. po przesunięciu lub płynnym przewijaniu). (I8f8a4)
Zmiany w interfejsie API
- Wycofane interfejsy API
ViewCompat.LAYOUT_DIRECTION_
(I51710, b/317055535) - Dodaj interfejs API
RecyclerView$LayoutManager#isLayoutReversed
. (I4970e)
Inne zmiany
- Usunięto ręczne określanie dostępu do nowych interfejsów API platformy, ponieważ odbywa się to automatycznie za pomocą modelowania interfejsu API, gdy korzystasz z R8 z AGP 7.3 lub nowszej wersji (np. R8 w wersji 3.3) oraz we wszystkich wersjach kompilacji, gdy korzystasz z AGP 8.1 lub nowszej wersji (np. D8 w wersji 8.1). Klienci, którzy nie korzystają z AGP, powinni zaktualizować D8 do wersji 8.1 lub nowszej. Więcej szczegółów znajdziesz w tym artykule. (Ia60e0, b/345472586)
- Dodaj typ widoku elementu do
RecyclerView
, aby powiązać lub utworzyć sekcje śledzenia, i oznacz wstępny odczyt RV jako „wymuszony – potrzebny w następnym klatce”, jeśli ma być użyty w następnej klatce i powinien zacząć działać jak najszybciej. (I8ec3e, b/309523615) - Zaktualizuj wartość
compileSdk
na 35 (szczegóły znajdziesz w sekcji „Uwaga o zgodnności” powyżej). 5dc41be
Darowizna zewnętrzna
- Środowisko wykonawcze
GestureDetectorCompat
zostało wycofane, ponieważ środowiskoGestureDetector
jest dostępne wminSdk
. (Icc4cd)
Wersja 1.4.0-alpha01
18 października 2023 r.
androidx.recyclerview:recyclerview:1.4.0-alpha01
został zwolniony. Wersja 1.4.0-alpha01 zawiera te commity.
Zmiany w interfejsie API
- Dodaj interfejs API
RecyclerView$LayoutManager#isLayoutReversed
. (I4970e)
Poprawki błędów
- Naprawiono błąd powodujący sporadyczne awarie podczas animacji (I42f22b) (również uwzględniony w wersji 1.3.2)
Wersja 1.3.2
Wersja 1.3.2
18 października 2023 r.
androidx.recyclerview:recyclerview:1.3.2
został zwolniony. Wersja 1.3.2 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiliśmy błąd powodujący sporadyczne awarie podczas animacji. (I42f22b)
Wersja 1.3.1
Wersja 1.3.1
26 lipca 2023 r.
androidx.recyclerview:recyclerview:1.3.1
została wydana bez zmian od wersji 1.3.1-rc01. Wersja 1.3.1 zawiera te zatwierdzenia.
Informacje o poprzedniej wersji znajdziesz na stronie z informacjami o wersji.
Wersja 1.3.1-rc01
24 maja 2023 r.
androidx.recyclerview:recyclerview:1.3.1-rc01
został zwolniony. Wersja 1.3.1-rc01 zawiera te zatwierdzenia.
Aby uniknąć awarii, użytkownicy ViewPager2 muszą zaktualizować tę wersję RecyclerView
do co najmniej 1.1.0-beta02.
Zmiany w interfejsie API
- Dodawanie nowych metod
setDebugAssertionsEnabled
isetVerboseLoggingEnabled
, które mogą ułatwić debugowanie problemów z aplikacją związanych zRecyclerView
. (I514b9)
Poprawki błędów
- Rozwiązanie problemu z zawieszaniem się aplikacji
ViewTreeLifecycleOwner
(w tymComposeView
) polega na tymczasowym ponownym dołączeniu tymczasowo odłączonych widoków podczas wywoływania funkcjionBind
. (I7244f2c, b/265347515, b/283288295)
Wersja 1.3.0
Wersja 1.3.0
8 marca 2023 r.
androidx.recyclerview:recyclerview:1.3.0
została wydana bez zmian od wersji 1.3.0-rc01. Wersja 1.3.0 zawiera te commity.
Ważne zmiany od wersji 1.2.0
- Ta wersja zawiera ulepszenia wydajności (wcześniej dostępne w wersjach 1.3.0-alpha02 i 1.3.0-beta01) podczas korzystania z Jetpack Compose. Jeśli używasz wersji Compose
1.2.0-beta02
lub nowszej i korzystałeś(-aś) z opcjiMyComposeAdapter
orazDisposeOnViewTreeLifecycleDestroyed
ViewCompositionStrategy
opisanych w poprzednich wytycznych dotyczących interoperacyjności, powinieneś je usunąć, ponieważ nie są one już lepsze od stanu domyślnego. - Dodano nową metodę
ConcatAdapter.getWrappedAdapterAndPosition
, która umożliwia pobieranie informacji o zapakowanym adapterze w sytuacjach, gdy nie maszViewHolder
, np.SpanSizeLookup
(I2bd4c, b/191543920)
Wersja 1.3.0-rc01
21 września 2022 r.
androidx.recyclerview:recyclerview:1.3.0-rc01
został zwolniony. Wersja 1.3.0-rc01 zawiera te commity.
- Brak zmian od ostatniej wersji
Wersja 1.3.0-beta02
10 sierpnia 2022 r.
androidx.recyclerview:recyclerview:1.3.0-beta02
został zwolniony. Wersja 1.3.0-beta02 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Usunięto adnotacje dotyczące możliwości wystąpienia null dodane w wersji 1.3.0-beta01, ponieważ stanowiły one znaczącą zmianę w źródle dla użytkowników Kotlina (I7a258,I1557e6,I8db76).
Wersja 1.3.0-beta01
29 czerwca 2022 r.
androidx.recyclerview:recyclerview:1.3.0-beta01
został zwolniony. 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 połączeniu z Jetpack Compose. Jeśli używasz wersji Compose
1.2.0-beta02
lub nowszej i korzystałeś(-aś) z opcjiMyComposeAdapter
orazDisposeOnViewTreeLifecycleDestroyed
ViewCompositionStrategy
opisanych w poprzednich wytycznych dotyczących interoperacyjności, powinieneś je usunąć, ponieważ nie są one już lepsze od stanu domyślnego.
Zmiany w interfejsie API
- Dodaliśmy adnotacje dotyczące możliwości wystąpienia wartości null dla kilku metod i parametrów, aby poprawić ostrzeżenia lint dla użytkowników Javy i zwiększyć interoperacyjność dla użytkowników Kotlina. Ta zmiana może spowodować błąd w źródle w przypadku niektórych użytkowników Kotlina i dodatkowe ostrzeżenia lub błędy lint w przypadku niektórych użytkowników Javy. (I61829, b/236487044; Ia0b6f; I6f119, b/236487209; Ibe1de, b/236487210)
Poprawki błędów
- Upewnij się, że siatki są traktowane jako siatki przez usługi a11y, ustawiając nazwę klasy informacji węzła a11y. (I12812)
Wersja 1.3.0-alpha02
6 kwietnia 2022 roku
androidx.recyclerview:recyclerview:1.3.0-alpha02
został zwolniony. Wersja 1.3.0-alpha02 zawiera te commity.
Zmiany w interfejsie API
- Dodaje eksperymentalne metody
BuildCompat
do przyszłych pakietów SDK (Iafd82, b/207528937) - Dodano nową metodę
ConcatAdapter.getWrappedAdapterAndPosition
, aby umożliwić pobieranie informacji o opakowanym adapterze w sytuacjach, gdy nie masz widocznego elementu ViewHolder, np.SpanSizeLookup
(I2bd4c, b/191543920)
Poprawki błędów
- Integracja z nową biblioteką AndroidX PoolingContainer (Ib89d2)
- Dostosowuje odległość przewijania dla działania ułatwień dostępu (If74ae)
Wersja 1.3.0-alpha01
15 września 2021 r.
androidx.recyclerview:recyclerview:1.3.0-alpha01
został zwolniony. Wersja 1.3.0-alpha01 zawiera te commity.
Nowe funkcje
- Dodano obsługę rozciągania RecyclerView podczas przewijania. (Iab877)
RecyclerView-Selection Version 1.2.0
Wersja 1.2.0-alpha01
5 maja 2021 roku
androidx.recyclerview:recyclerview-selection:1.2.0-alpha01
został zwolniony. Wersja 1.2.0-alpha01 zawiera te zatwierdzenia.
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 poddany recyklingowi. (b/145767095)
Wersja 1.2.1
Wersja 1.2.1
2 czerwca 2021 r.
androidx.recyclerview:recyclerview:1.2.1
został zwolniony. Wersja 1.2.1 zawiera te zatwierdzenia.
Poprawki błędów
ViewHolder
w ramachConcatAdapter
zwracają teraz prawidłową pozycję adaptera, gdy jest on zapytany w wywołaniu zwrotnymonViewRecycled
. (b/187339376)
Wersja 1.2.0
Wersja 1.2.0
7 kwietnia 2021 r.
androidx.recyclerview:recyclerview:1.2.0
został zwolniony. Wersja 1.2.0 zawiera te zatwierdzenia.
Najważniejsze zmiany od wersji 1.1.0
ConcatAdapter: ten nowy adapter umożliwia łatwe konkatenowanie wielu adapterów w tym samym RecyclerView. Więcej informacji znajdziesz w poście na blogu.
- W ramach tej zmiany wycofujemy funkcję
ViewHolder.getAdapterPosition
i zastępujemy ją 2 nowymi metodami:- getBindingAdapterPosition zwraca pozycję w stosunku do adaptera, który powiązał dany element.
- getAbsoluteAdapterPosition zwraca pozycję w stosunku do całego RecyclerView.
Opóźnione przywracanie stanu: 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.
androidx.recyclerview:recyclerview:1.2.0-rc01
został zwolniony. Wersja 1.2.0-rc01 zawiera te zatwierdzenia.
Poprawki błędów
- Atrybut
ConcatAdapter.Config.Builder
ma teraz wartości domyślne zgodne z atrybutemConfig.DEFAULT
(b/157169835).
Wersja 1.2.0-beta02
24 lutego 2021 r.
androidx.recyclerview:recyclerview:1.2.0-beta02
został zwolniony. Wersja 1.2.0-beta02 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że górne wypełnienie powodowało przesunięcie się po prawej stronie na obszar wypełniony, zamiast w dół, zgodnie z zasadami wypełniania. (I6b61d, b/118399122)
Wersja 1.2.0-beta01
2 grudnia 2020 r.
androidx.recyclerview:recyclerview:1.2.0-beta01
został wydany bez zmian od 1.2.0-alpha06
. Wersja 1.2.0-beta01 zawiera te commity.
Wersja 1.2.0-alpha06
1 października 2020 roku
androidx.recyclerview:recyclerview:1.2.0-alpha06
został zwolniony. Wersja 1.2.0-alpha06 zawiera te commity.
Nowe funkcje
- Dodano obsługę dodawania wielu obiektów RecyclerListener. (I70ad8, b/145767095)
Zmiany w interfejsie API
- Wycofana metoda RecyclerView.setRecyclerListener(RecyclerListener). (I70ad8, b/145767095)
Wersja 1.2.0-alpha05
22 lipca 2020 r.
androidx.recyclerview:recyclerview:1.2.0-alpha05
został zwolniony. Wersja 1.2.0-alpha05 zawiera te commity.
Poprawki błędów
- Rozwiązanie problemu polegającego na tym, że jeśli RecyclerView zawiera tylko jeden element i jest on zaznaczony, przejście do następnego lub poprzedniego elementu nie powoduje zmiany zaznaczonego elementu. (6f36b3)
- Usunięto błąd
ArrayIndexOutOfBoundsException
wStaggeredGridLayoutManager
(49b601, b/122303625, b/74877618, b/160193663, b/37086625). - Naprawiliśmy błąd pomiarowy, który w określonych okolicznościach powodował, że RecyclerView nie wyświetlał swoich elementów. (89040c, b/138734786)
Wkład zewnętrzny
- Dziękujemy Kolinowi Krewinkelowi z zespołu Facebooka za wkład.
Wersja 1.2.0-alpha04
24 czerwca 2020 r.
androidx.recyclerview:recyclerview:1.2.0-alpha04
został zwolniony. Wersja 1.2.0-alpha04 zawiera te commity.
Zmiany w interfejsie API
- Nazwa
MergeAdapter
została zmieniona naConcatAdapter
, aby uniknąć pomyłek z różnymi zachowaniami podczas scalania danych (c0540c, b/158019211).
Poprawki błędów
- Ulepszenia automatycznego przewijania po usunięciu wszystkich widocznych elementów (fe8670, b/154124815)
Wersja 1.2.0-alpha03
29 kwietnia 2020 r.
androidx.recyclerview:recyclerview:1.2.0-alpha03
został zwolniony. Wersja 1.2.0-alpha03 zawiera te komisy.
Nowe funkcje
- RecyclerView ma teraz metodę
nestedScrollBy
, która umożliwia programowe przewijanie współpracujące z zagnieżdżonym przewijaniem: (Ibaa58)
Wersja 1.2.0-alpha02
1 kwietnia 2020 r.
androidx.recyclerview:recyclerview:1.2.0-alpha02
został zwolniony. Wersja 1.2.0-alpha02 zawiera te commity.
Ta i nowsze wersje RecyclerView są niezgodne z niższymi 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 przykładzie powyżej adapter MergeAdapter wyświetli elementy z poziomu
adapter1
, a potemadapter2
.RecyclerView.Adapter
przywracanie stanu leniwego:Do klasy
RecyclerView.Adapter
dodano nowy interfejs API, który umożliwia komponentowi Adapter określenie, kiedy należy przywrócić stan układu.Możesz na przykład zadzwonić do:
myAdapter.setStateRestorationStrategy(StateRestorationStrategy.WHEN_NOT_EMPTY);
aby RecyclerView czekał, aż adapter nie będzie pusty, zanim przywróci pozycję przewijania.
CollectionInfo i CollectionItemInfo nie będą już wypełniane domyślnie.
Jeśli chcesz, aby usługi ułatwień dostępu (np. Talkback) nadal wyświetlały użytkownikowi liczbę i indeks elementów, musisz samodzielnie wypełnić CollectionInfo i CollectionItemInfo.
Te obiekty nie są już wypełniane w ramach, ponieważ framework nie może określić liczby elementów postrzeganych przez użytkownika (takich jak separatory, nagłówki czy elementy RecyclerView, które reprezentują wiele elementów).
Poprawki błędów
- RecyclerView nie umieszcza już widoków poza widocznym obszarem, gdy zmieni się jego rozmiar.
- Naprawiono błąd w klasie DiffUtil, który powodował nieprawidłowe obliczanie różnicy, gdy oryginalny element na pierwszej liście był powielany wielokrotnie na drugiej liście. (b/123376278)
Wersja 1.2.0-alpha01
18 grudnia 2019 r.
androidx.recyclerview:recyclerview:1.2.0-alpha01
został zwolniony. Wersja 1.2.0-alpha01 zawiera te zatwierdzenia
Poprawki błędów
- Rozwiązano drobne problemy z FastScroller związane z rysowaniem i dokładnością dotykiem w językach z pisem od prawej do lewej (b/143789932, aosp/1130438)
- Rozwiązanie problemu polegającego na awarii ItemTouchHelper podczas usuwania z RecyclerView, gdy animacje ItemTouchHelper są uruchomione (b/140447176, aosp/1167575).
Wersja 1.1.0
Wersja 1.1.0
20 listopada 2019 r.
androidx.recyclerview:recyclerview:1.1.0
został zwolniony. Wersja 1.1.0 zawiera te zatwierdzenia:
Ważne zmiany od wersji 1.0.0
PagerSnapHelper
iLinearSnapHelper
uwzględniają teraz wypełnienie RecyclerView niezależnie od wartościclipToPadding
(b/139452422, b/139012032, aosp/1103182, aosp/1106715, aosp/1130728)- Funkcja
RecyclerView.setLayoutTransition(LayoutTransition)
została wycofana i wywołując ją z wartością inną niż NULL, wywołasz funkcjęIllegalArgumentException
. Zamiast tego użyj polaRecyclerView.setItemAnimator(ItemAnimator)
. (aosp/839414) - aosp/723649: RecyclerView teraz implementuje
NestedScrollingChild3
, co umożliwia mu uzyskanie informacji o tym, kiedy wszystkie jego elementy nadrzędne z przewijaniem zagnieżżonym przestały zużywać odległość przewijania zagnieżżona. Jeśli kod dewelopera obecnie zastępuje funkcjęRecyclerView.onNestedScroll(View, int, int, int, int, int)
, prawdopodobnie nie będzie już wywoływany i zamiast tego należy zastąpić funkcjęRecyclerView.onNestedScroll(View, int, int, int, int, int, int[])
. - RecyclerView ma teraz atrybut domyślnego stylu:
recyclerViewStyle
, który umożliwia ustawienie domyślnego stylu w motywie - Interfejs API działań ułatwień dostępu ViewCompat nie powoduje już problemów z klasą ItemDelegate w RecyclerView.
- Wartość
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 RecyclerView. (aosp/931259) - Dodano nową przeciążenie metody smoothScrollBy:
RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration)
, która umożliwia określenie czasu trwania animacji w milisekundach. (aosp/952807)
Wersja 1.1.0-rc01
23 października 2019 r.
androidx.recyclerview:recyclerview:1.1.0-rc01
został zwolniony. Wersja 1.1.0-rc01 zawiera te zatwierdzenia:
Poprawki błędów
- Usunięto błąd „Aplikacja nie odpowiada” podczas zastępowania
RecyclerViewAccessibilityDelegate.ItemDelegate
(aosp/1138057, aosp/1133434).
Wersja 1.1.0-beta05
9 października 2019 r.
androidx.recyclerview:recyclerview:1.1.0-beta05
został zwolniony. Wersja 1.1.0-beta05 zawiera te zatwierdzenia:
Zmiany w interfejsie API
- W związku z problemami zgłoszonymi w problemach aosp/1106715 i aosp/1103182 metody LinearSnapHelper i PagerSnapHelper zwracają teraz widok, który znajduje się w środku granic RecyclerView, z wyjątkiem wypełnienia, pomimo wartości clipToPadding. (aosp/1130728)
Poprawki błędów
- Rozwiązaliśmy problem polegający na tym, że RecyclerView generował zduplikowane węzły dostępności dla elementów potomnych RecyclerView. (aosp/1130618)
- Rozwiązaliśmy problem polegający na tym, że hierarchie dostępności w RecyclerView nie działały.
- Rozwiązaliśmy problem, który powodował, że nie były używane niestandardowe obiekty ItemDelegate.
Wersja 1.1.0-beta04
5 września 2019 r.
androidx.recyclerview:recyclerview:1.1.0-beta04
został zwolniony. Zmiany zawarte w tej wersji znajdziesz tutaj.
Poprawki błędów
- Metody
PagerSnapHelper
iLinearSnapHelper
uwzględniają teraz wypełnienie RecyclerView niezależnie od wartościclipToPadding
(b/139452422, b/139012032, aosp/1103182, aosp/1106715) - Usunęliśmy błąd, który powodował, że RecyclerView nie blokował przechwytywania dotyku, gdy wbudowane przewijanie powodowało przewijanie
NestedScrollingParent
(b/138668210, aosp/1105373). Jest to przydatne w przypadku bibliotek takich jak ViewPager2. - RecyclerView przechodzi teraz konsekwentnie do
SCROLL_STATE_DRAGGING
, zanim zostaną wysłane zagnieżdżone przewijania wstecz (aosp/1105373) - Przewijanie wsteczne w głąb nie jest już wykonywane, dopóki gest nie przekroczy progu dotyku (b/139530818, aosp/1105373)
- Argumenty
dx
idy
wysyłane do zagnieżdżonych przewijania wstępnego są ustawiane na 0, gdy RecyclerView nie może przewijać w tym kierunku (aosp/1105373)
Wersja 1.1.0-beta03
15 sierpnia 2019 r.
androidx.recyclerview:recyclerview:1.1.0-beta03
został zwolniony. Zmiany zawarte w tej wersji znajdziesz tutaj.
Zmiany w interfejsie API
- RecyclerView przesyła teraz odległości przewijania za pomocą
View.onScrollChanged(int l, int t, int oldl, int oldt)
, dzięki czemu usługi ułatwień dostępu są powiadamiane o zmianach przewijania. (aosp/1007823)
Poprawki błędów
- Usunęliśmy poważny błąd związany z przepełnieniem stosu błędów dotyczącego RecyclerView i ułatwień dostępu. (aosp/1099577)
Wersja 1.1.0-beta02
7 sierpnia 2019 r.
androidx.recyclerview:recyclerview:1.1.0-beta02
został zwolniony. Zmiany zawarte w tej wersji znajdziesz tutaj.
Nowe funkcje
- RecyclerView ma teraz atrybut domyślnego stylu:
recyclerViewStyle
, który umożliwia ustawienie domyślnego stylu w motywie.
Poprawki błędów
- Naprawiliśmy błąd, który powodował, że RecyclerView nie blokował przechwytywania dotyku, gdy przewijanie powodowało przewijanie NestedScrollingParent. (b/131115697, aosp/1055911)
Wersja 1.1.0-beta01
2 lipca 2019 r.
androidx.recyclerview:recyclerview:1.1.0-beta01
został zwolniony. Zmiany zawarte w tej wersji znajdziesz tutaj.
Nowe funkcje
RecyclerView
bierze teraz udział w przewijaniu zagnieżdżonym, gdy przewijanie jest inicjowane za pomocą zdarzeń ułatwień 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
są dostępne. Zmiany zawarte w tej wersji znajdziesz tutaj.
Nowe funkcje
- Dodano nową przeciążenie metody smoothScrollBy:
RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration)
, która umożliwia określenie czasu trwania animacji w milisekundach. (aosp/952807)
Zmiany w interfejsie API
- Elementy
GridLayoutManager
iStaggeredGridLayoutManager
nie są już automatycznie oznaczane jako nagłówki w celu ułatwienia dostępu (aosp/969703). - Zachowaj kolejność wyboru (według czasu utworzenia) w
recyclerview-selection
(aosp/937279)
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że
RecyclerView
miało nieprawidłową prędkość podczas przewijania zagnieżdżonego elementu. (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
są dostępne. Zmiany zawarte w tej wersji znajdziesz tutaj.
Nowe funkcje
LinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[])
można zastąpić, aby dostosować ilość dodatkowej przestrzeni układu, która ma być dodana po obu stronach powiązanego RecyclerView. (aosp/931259)
Zmiany w interfejsie API
- Dodaj interfejs API do pobierania
DividerItemDecoration
drawable (aosp/937282) - Wycofaj
LinearLayout.getExtraLayoutSpace(RecyclerVew.State)
na rzecz nowego mechanizmu, który umożliwia dodanie niestandardowego dodatkowego miejsca na układ po obu stronach. Nowa metoda toLinearLayout.calculateExtraLayoutSpace(RecyclerView.state, int[])
(aosp/931259)
Poprawki błędów
- Uporządkowano wybór gestów (aosp/940781)
- Zachowanie kolejności wyboru (według czasu utworzenia) (b/128455535)
Wersja 1.1.0-alpha04
3 kwietnia 2019 r.
androidx.recyclerview:recyclerview:1.1.0-alpha04
został zwolniony. Zmiany zawarte w tej wersji znajdziesz tutaj.
Poprawki błędów
- W ramach funkcji OnItemTouchListener nie można było przechwytywać zdarzenia ACTION_UP, co uniemożliwiało jej blokowanie odpowiedzi innych kodów na to zdarzenie. Problem został rozwiązany (aosp/916137).
Wersja 1.1.0-alpha03
13 marca 2019 r.
androidx.recyclerview:recyclerview:1.1.0-alpha03
został zwolniony. Pełną listę zatwierdzeń zawartych w tej wersji znajdziesz tutaj.
Nowe funkcje
GridLayoutManager
: opcjonalna wyższa rozdzielczośćGridLayoutManager
szacowania wymiaru paska przewijania (aosp/838836):- Używa informacji o zakresie, aby oszacować wymiary paska przewijania w przypadku
GridLayoutManager
. - Aby włączyć tę funkcję, wywołaj
GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean)
, podając jako argument wartość true. - Więcej informacji znajdziesz w dokumentacji dotyczącej
GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean)
.
- Używa informacji o zakresie, aby oszacować wymiary paska przewijania w przypadku
Poprawki błędów
- Dostępność: wystąpił błąd, w którym po odzyskaniu i ponowym uruchomieniu widoku ViewHolder element ItemDelegate powiązany z RecyclerView
RecyclerViewAccessibilityDelegate
nie był powiązany z elementem itemView widoku ViewHolder, co powodowało problemy z dostępnością. Problem został rozwiązany (aosp/917740).
Wersja 1.1.0-alpha02
30 stycznia 2019 r.
androidx.recyclerview:recyclerview 1.1.0-alpha02
został zwolniony.
Zmiany w interfejsie API
- Parametry
RecyclerView.setLayoutFrozen(boolean)
iRecyclerView.isLayoutFrozen()
zostały wycofane i zastąpione parametramiRecyclerView.suppressLayout(boolean)
iRecyclerView.isLayoutSuppressed()
. (aosp/839414) - Funkcja
RecyclerView.setLayoutTransition(LayoutTransition)
została wycofana i wywołując ją z wartością inną niż NULL, wywołasz funkcjęIllegalArgumentException
. (aosp/839414)
Poprawki błędów
- Naprawiono błąd w RV, który powodował, że
SmoothScroller
nigdy nie był zatrzymywany (aosp/843741) - Naprawiliśmy błąd, który powodował, że funkcja
SCROLL_STATE_IDLE
mogła nie zostać wywołana 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
są dostępne.
androidx.recyclerview 1.1.0-alpha01
Zmiany w interfejsie API
- aosp/723649: RecyclerView teraz implementuje
NestedScrollingChild3
, co umożliwia mu uzyskanie informacji o tym, kiedy wszystkie jego elementy nadrzędne z przewijaniem zagnieżżonym przestały zużywać odstępy w przewijaniu zagnieżżonym. Jeśli kod dewelopera obecnie zastępuje funkcjęRecyclerView.onNestedScroll(View, int, int, int, int, int)
, prawdopodobnie nie będzie już wywoływany i zamiast tego należy zastąpić funkcjęRecyclerView.onNestedScroll(View, int, int, int, int, int, int[])
.
Poprawki błędów
- Usunięto awarię, która występowała podczas używania
TransitionManager
do zwijania lub rozwijania elementów wRecyclerView
(b/37129527). - Usunęliśmy błąd, który powodował, że zachowanie
RecyclerView.OnItemTouchListener
było niezgodne z zachowaniem systemu widokuonInterceptTouchEvent
ionTouchEvent
(aosp/721235). - Naprawiono kilka błędów związanych z płynnym przewijaniem (aosp/729718, aosp/747168, aosp/812576)
- Naprawiono strategię snapa w
PagerSnapHelper
, aby rozwiązać problem z nietypowymi widokami dzieci (aosp/795752).
androidx.recyclerview-selection 1.1.0-alpha01
Poprawki błędów
- Naprawiono błąd
ConcurrentModificationException
, który występował podczas zmiany zbioru danych z usunięciem selekcji.
RecyclerView-Selection w wersji 1.1.0
RecyclerView-Selection w wersji 1.1.0
27 stycznia 2021 r.
androidx.recyclerview:recyclerview-selection:1.1.0
został zwolniony. Wersja 1.1.0 zawiera te zatwierdzenia.
Najważniejsze zmiany od wersji 1.0.0
- Liczne poprawki stabilności.
- Metody
withGestureTooltypes
iwithPointerTooltypes
zostały wycofaneSelectionTracker.Builder
. Te metody zostaną usunięte w przyszłej wersji.
RecyclerView-Selection w wersji 1.1.0-rc03
1 października 2020 roku
androidx.recyclerview:recyclerview-selection:1.1.0-rc03
został zwolniony. Wersja 1.1.0-rc03 zawiera te commity.
Poprawki błędów
Dziękujemy Stefanowi Kieslerowi za testowanie poprawek i opinię.
- Rozwiązaliśmy problem polegający na tym, że podczas aktywnego wybierania nieoczekiwanie wywoływane były metody OnClickListener widoku podrzędnego.
- Obsługa myszy (band-selection) > Obsługa nieoczekiwanego przewijania. (b/167821507)
RecyclerView-Selection w wersji 1.1.0-rc02
2 września 2020 r.
androidx.recyclerview:recyclerview-selection:1.1.0-rc02
został zwolniony. Wersja 1.1.0-rc02 zawiera te zatwierdzenia.
Najważniejsze informacje
- Usunięto kilka regresji z wersji 1.0 w obsłudze danych wejściowych.
- Zaktualizowaliśmy bibliotekę, aby honorowała
onRequestDisallowInterceptTouchEvent
, co pozwala jej dobrze współpracować z ItemTouchHelper (wystarczy ją odsunąć).
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ę dotknięć podczas aktywnego wyboru (b/165030422). - Rozwiązanie problemu polegającego na tym, że wybrane elementy nie były aktualizowane po usunięciu ich z adaptera. (b/138932671)
- Rozwiązano problem, który powodował, że elementy RecyclerView wywoływały zdarzenia onClick, gdy SelectionTracker miał aktywny wybór (b/161162268).
- Teraz obsługuje
onRequestDisallowInterceptTouchEvent
prawidłowo - Rozwiązanie problemu polegającego na tym, że podczas przewijania myszką w sekcji Q pojawiał się znak
”Cannot call this method in a scroll callback”
- Zaktualizowano dokumenty (szczególnie w
StableIdKeyProvider
), aby wyraźnie określić wymagania dotyczące instancji RecyclerView
Recyclerview-Selection w wersji 1.1.0-rc01
5 lutego 2020 r.
androidx.recyclerview:recyclerview-selection:1.1.0-rc01
został zwolniony. Wersja 1.1.0-rc01 zawiera te zatwierdzenia:
Poprawki błędów
- Rozwiązaliśmy problem polegający na tym, że RecyclerView jest trudny do przewijania za pomocą gestów, jeśli wchodzi w interakcję z przewijanym układem AppBar (aosp/1193934).
RecyclerView-Selection Version 1.1.0-beta01
4 grudnia 2019
androidx.recyclerview:recyclerview-selection:1.1.0-beta01
został zwolniony. Wersja 1.1.0-beta01 zawiera te commity:
Ogólne ulepszenia stabilności związane z weryfikacjami obronnymi i zarządzaniem stanem wewnętrznym.
Poprawki błędów
- Ulepszone 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 istniały w celu umożliwienia deweloperom mapowania zachowań wskaźnika lub gestów na typy narzędzi inne niż domyślne*. Zamysł był dobry, ale po dalszym korzystaniu okazało się, że oczekiwania użytkowników dotyczące zachowania podczas wprowadzania danych są bardzo zależne od typu narzędzia. Co więcej, jeśli chodzi o system wprowadzania danych w Androidzie, „pasywne” pióra są typu FINGER.
- Domyślne typy narzędzi to FINGER (palec) w przypadku gestów i MOUSE (mysz) w przypadku wskaźnika.