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.4.0 - - -
recyclerview-selection 1.2.0 - - 1.3.0-alpha01
Ostatnia aktualizacja tej biblioteki: 17 grudnia 2025 r.

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.

Tworzenie nowego problemu

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

  • Adaptive obsługa częstotliwości odświeżania: RecyclerView teraz wywołuje setFrameContentVelocity podczas 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

  • Adaptive obsługa częstotliwości odświeżania: RecyclerView teraz wywołuje setFrameContentVelocity podczas przewijania za pomocą OverScroller (np. po szybkim przesunięciu lub płynnym przewijaniu). (I8f8a4)

Zmiany w interfejsie API

  • Dodaj interfejs RecyclerView$LayoutManager#isLayoutReversed API. (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ść compileSdk na 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ę setFrameContentVelocity podczas 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#isLayoutReversed API. (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ść compileSdk na 35 (szczegóły znajdziesz w sekcji „Uwaga dotycząca zgodności” powyżej). 5dc41be

Wkład zewnętrzny

  • Usługa GestureDetectorCompat została wycofana, ponieważ usługa GestureDetector jest dostępna w minSdk. (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#isLayoutReversed API. (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 setDebugAssertionsEnabledsetVerboseLoggingEnabled, które mogą pomóc w debugowaniu problemów związanych z RecyclerView w aplikacjach. (I514b9)

Poprawki błędów

  • Naprawia awarie u użytkowników ViewTreeLifecycleOwner (w tym ComposeView) poprzez tymczasowe ponowne dołączanie tymczasowo odłączonych widoków podczas wywoływania onBind. (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-alpha021.3.0-beta01) w przypadku używania z Jetpack Compose. Jeśli używasz Compose w wersji 1.2.0-beta02 lub nowszej i korzystasz z MyComposeAdapterDisposeOnViewTreeLifecycleDestroyed ViewCompositionStrategy opisanych 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 obiektu ViewHolder, np. w przypadku obiektu SpanSizeLookup (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-beta02 lub nowszej i korzystasz z MyComposeAdapterDisposeOnViewTreeLifecycleDestroyed ViewCompositionStrategy opisanych 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 BuildCompat dla 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 przypadku SpanSizeLookup (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 RecyclerView w 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

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

  • ViewHolderConcatAdapter zwracają teraz prawidłową pozycję adaptera, gdy są wysyłane w wywołaniu zwrotnym onViewRecycled. (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.

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.Builder ma teraz wartości domyślne zgodne z Config.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 ArrayIndexOutOfBoundsExceptionStaggeredGridLayoutManager (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

  • MergeAdapter została zmieniona na ConcatAdapter, 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 z adapter2.

  • RecyclerView.Adapter przywracanie 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

  • PagerSnapHelperLinearSnapHelper uwzględniają teraz dopełnienie elementu RecyclerView niezależnie od wartości clipToPadding (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łąd IllegalArgumentException. Zamiast niej użyj zasady RecyclerView.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ępuje RecyclerView.onNestedScroll(View, int, int, int, int, int), prawdopodobnie nie będzie już wywoływany, a zamiast niego będzie zastępowany RecyclerView.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/1106715aosp/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 PagerSnapHelperLinearSnapHelper uwzględniają teraz dopełnienie elementu RecyclerView niezależnie od wartości parametru clipToPadding (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 dxdy wysył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

  • RecyclerView uczestniczy 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-alpha06androidx.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

  • GridLayoutManagerStaggeredGridLayoutManager nie 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 RecyclerView był 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-alpha05androidx.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 to LinearLayout.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 przewijania GridLayoutManager (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).

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 RecyclerViewAccessibilityDelegate elementu 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)RecyclerView.isLayoutFrozen() zostały wycofane na rzecz metod RecyclerView.suppressLayout(boolean)RecyclerView.isLayoutSuppressed(). (aosp/839414)
  • RecyclerView.setLayoutTransition(LayoutTransition) jest formalnie wycofana i w przypadku wywołania z wartością inną niż null zgłosi błąd IllegalArgumentException. (aosp/839414)

Poprawki błędów

  • Naprawienie błędu w RV, który powodował, że SmoothScroller nigdy nie było zatrzymywane (aosp/843741)
  • Usunęliśmy błąd, który powodował, że funkcja SCROLL_STATE_IDLE mogł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-alpha01androidx.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ępuje RecyclerView.onNestedScroll(View, int, int, int, int, int), prawdopodobnie nie będzie już wywoływany, a zamiast niego będzie zastępowany RecyclerView.onNestedScroll(View, int, int, int, int, int, int[]).

Poprawki błędów

  • Usunięto awarię podczas używania znaku TransitionManager do zwijania i rozwijania elementu w RecyclerView (b/37129527).
  • Usunęliśmy błąd, który powodował, że działanie RecyclerView.OnItemTouchListener było niezgodne z działaniem onInterceptTouchEventonTouchEvent w 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 withGestureTooltypeswithPointerTooltypes SelectionTracker.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

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.