Zwijane sekcje i akordeony w React Native

Przewodnik po zwijanych sekcjach i akordeonach w React Native

Zwijane sekcje i akordeon w React Native bez biblioteki | We.Inc

Zwijaj i rozwijaj sekcje w React Native za pomocą LayoutAnimation, obracaj strzałkę przez Animated i zgłaszaj accessibilityState expanded. Podgląd akordeonu na żywo.

Aby zwinąć sekcję w React Native, trzymaj w stanie flagę open i renderuj treść tylko wtedy, gdy ma wartość true. Wywołaj LayoutAnimation.configureNext przed zmianą flagi, a otaczające widoki płynnie przesuną się na nowe miejsca. Nadaj nagłówkowi Pressable accessibilityRole="button" i accessibilityState={{ expanded }}, aby czytniki ekranu informowały, czy sekcja jest otwarta.

Dwa sposoby animowania zwijanej sekcji

Akordeon poniżej to webowy odpowiednik kodu React Native z tej strony: ten sam kształt stanu, ta sama flaga expanded na każdym nagłówku. Przełączaj między trybem, w którym kilka sekcji może być otwartych, a trybem tylko jednej, a potem skopiuj wersję pasującą do Twojego ekranu.

Najczęściej zadawane pytania

Jak animować zwijany widok w React Native?

Wywołaj LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut) tuż przed zmianą stanu, która pokazuje lub ukrywa treść. Ustawienie easeInEaseOut trwa 300 milisekund.

Dlaczego LayoutAnimation nic nie robi na Androidzie?

Strona o LayoutAnimation mówi, że Android wymaga UIManager.setLayoutAnimationEnabledExperimental(true), wywołanego tylko wtedy, gdy ta funkcja istnieje. Uruchom to raz przy starcie aplikacji, przed pierwszą animowaną zmianą.

Czy mogę animować wysokość przez Animated z native driverem?

Nie. Dokumentacja React Native ogranicza native driver do właściwości niezwiązanych z układem, takich jak transform i opacity, więc wartości układu, takie jak height, odpadają. Animuj wysokość bez native drivera albo użyj LayoutAnimation.

Skąd czytniki ekranu wiedzą, że sekcja jest otwarta?

Ustaw accessibilityState={{ expanded: isOpen }} na nagłówku albo props aria-expanded. Dokumentacja opisuje expanded jako informację, czy rozwijalny element jest aktualnie rozwinięty czy zwinięty.

Akordeon czy niezależne sekcje

Jak zachować płynność

Kod zwijanej sekcji

Zwijana sekcja z LayoutAnimation i obracającą się strzałką

Treść jest zamontowana tylko wtedy, gdy sekcja jest otwarta. Strzałka obraca się z native driverem, bo obrót to transformacja.

Akordeon: tylko jedna sekcja otwarta naraz

Pojedyncze id w stanie. Ponowne naciśnięcie otwartej sekcji ustawia je na null i ją zamyka.

Kiedy zostanie wysłane moje zamówienie?

Zamówienia złożone przed południem wychodzą tego samego dnia. Link do śledzenia dostaniesz mailem, gdy tylko paczka zostanie zeskanowana.

Czy mogę zwrócić produkt?

Nieużywane produkty możesz odesłać w ciągu 30 dni. Rozpocznij zwrot na ekranie zamówienia i wydrukuj etykietę.

Jak zmienić adres?

Otwórz Konto, a potem Adresy. Zmiany dotyczą zamówień, które nie zostały jeszcze wysłane.

Podgląd akordeonu

Przykładowe pytania pomocy z wymyślonego sklepu, aby pokazać działanie.

Tylko jedna otwarta

Kilka otwartych

Sposób otwierania

Zacznij za darmo · Bez karty kredytowej

Powiązane: Poradniki

Produkt

Dla kogo

Funkcje

Zasoby

Firma

Mapa strony