Recyclerview

Wyświetlanie dużych zbiorów danych w interfejsie przy minimalnym zużyciu pamięci.

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
Ostatnia aktualizacja tej biblioteki: 18 września 2024 r.

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ą.

Tworzenie nowego zgłoszenia

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 teraz setFrameContentVelocity, 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ż środowisko GestureDetector jest dostępne w minSdk. (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 setDebugAssertionsEnabledsetVerboseLoggingEnabled, które mogą ułatwić debugowanie problemów z aplikacją związanych z RecyclerView. (I514b9)

Poprawki błędów

  • Rozwiązanie problemu z zawieszaniem się aplikacji ViewTreeLifecycleOwner (w tym ComposeView) polega na tymczasowym ponownym dołączeniu tymczasowo odłączonych widoków podczas wywoływania funkcji onBind. (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-alpha021.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 opcji MyComposeAdapter oraz DisposeOnViewTreeLifecycleDestroyed 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 masz ViewHolder, 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 opcji MyComposeAdapter oraz DisposeOnViewTreeLifecycleDestroyed 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 ramach ConcatAdapter zwracają teraz prawidłową pozycję adaptera, gdy jest on zapytany w wywołaniu zwrotnym onViewRecycled. (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.

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 atrybutem Config.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

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 ArrayIndexOutOfBoundsExceptionStaggeredGridLayoutManager (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 na ConcatAdapter, 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 potem adapter2.

  • 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

  • PagerSnapHelperLinearSnapHelper uwzględniają teraz wypełnienie RecyclerView niezależnie od wartości clipToPadding (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 pola RecyclerView.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/1106715aosp/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 PagerSnapHelperLinearSnapHelper uwzględniają teraz wypełnienie RecyclerView niezależnie od wartości clipToPadding (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 dxdy 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-alpha06androidx.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 GridLayoutManagerStaggeredGridLayoutManager 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-alpha05androidx.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 to LinearLayout.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).

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)RecyclerView.isLayoutFrozen() zostały wycofane i zastąpione parametrami RecyclerView.suppressLayout(boolean)RecyclerView.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-alpha01androidx.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 w RecyclerView (b/37129527).
  • Usunęliśmy błąd, który powodował, że zachowanie RecyclerView.OnItemTouchListener było niezgodne z zachowaniem systemu widoku onInterceptTouchEvent i onTouchEvent (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 i withPointerTooltypes zostały wycofane SelectionTracker.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

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.