Compose Material 3 Adaptive

  
Użyj biblioteki adaptacyjnej Material 3, aby tworzyć adaptacyjne interfejsy, które będą automatycznie dostosowywać się do bieżących konfiguracji okna, takich jak klasy rozmiaru okna czy orientacja urządzenia. Biblioteka udostępnia zarówno domyślne implementacje szkieletu, jak i niezbędne elementy składowe, które umożliwiają tworzenie własnych, niestandardowych rozwiązań.
Najnowsza aktualizacja Wersja stabilna Wersja kandydująca do publikacji Wersja Beta Wersja alfa
2 lipca 2025 r. 1.1.0 - - 1.2.0-alpha08

Deklarowanie zależności

Aby dodać zależność od Compose, musisz dodać do projektu repozytorium Google Maven. Więcej informacji znajdziesz w repozytorium Maven Google.

Dodaj zależności dotyczące potrzebnych artefaktów w pliku build.gradle aplikacji lub modułu:

Groovy

dependencies {
    implementation "androidx.compose.material3.adaptive:adaptive:1.2.0-alpha08"
    implementation "androidx.compose.material3.adaptive:adaptive-layout:1.2.0-alpha08"
    implementation "androidx.compose.material3.adaptive:adaptive-navigation:1.2.0-alpha08"
}

Kotlin

dependencies {
    implementation("androidx.compose.material3.adaptive:adaptive:1.2.0-alpha08")
    implementation "androidx.compose.material3.adaptive:adaptive-layout:1.2.0-alpha08"
    implementation "androidx.compose.material3.adaptive:adaptive-navigation:1.2.0-alpha08"
}

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 nową kartę, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz dodać swój głos do istniejącego problemu, klikając przycisk gwiazdki.

Tworzenie nowego problemu

Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.

Tworzenie adaptacyjnej wersji 1.2 Material3

Wersja 1.2.0-alpha08

2 lipca 2025 r.

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.2.0-alpha08 Wersja 1.2.0-alpha08 zawiera te zmiany.

Wersja 1.2.0-alpha07

18 czerwca 2025 r.

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.2.0-alpha07 Wersja 1.2.0-alpha07 zawiera te zmiany.

Zmiany w interfejsie API

  • Wprowadź obsługę funkcji currentWindowAdaptiveInfo() w przypadku klas rozmiarów okien o dużej i bardzo dużej szerokości oraz przenieś funkcje calculatePosture()currentWindowDpSize() do wersji stabilnej. (I92e97)

Wersja 1.2.0-alpha06

20 maja 2025 r.

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.2.0-alpha06 Wersja 1.2.0-alpha06 zawiera te zmiany.

Nowe funkcje

  • Obliczenia domyślnej dyrektywy szkieletu panelu obsługują teraz klasy rozmiaru okna L i XL.

Zmiany w interfejsie API

  • Spraw, aby Modifier.paneExpansionDraggable zapewniało domyślną semantykę ułatwień dostępu i promowało odpowiednie interfejsy API do wersji stabilnej. (Idb818)
  • Obsługa przeciągania w celu zmiany rozmiaru w przypadku paneli unoszących się nad innymi elementami (Idadd3)
  • Obsługa warstw zaciemniających w przypadku paneli lewitujących (I9b091)

Wersja 1.2.0-alpha05

7 maja 2025 r.

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.2.0-alpha05 Wersja 1.2.0-alpha05 zawiera te zmiany.

Nowe funkcje

  • Układy adaptacyjne Material3 obsługują teraz strategie adaptacyjne Levitated, które mogą przekształcić panel w pływające wyskakujące okienko.

Zmiany w interfejsie API

  • Wprowadzenie obsługi wielu platform w funkcjach rozmiaru bieżącego okna (Ie4172)
  • Wprowadzenie animacji paneli dla paneli lewitujących (Ic9dc3)
  • Wprowadzenie strategii lewitacji na potrzeby adaptacji (I1ba7c)

Poprawki błędów

  • Poprawienie użycia zakresu coroutine w przykładowych kodach adaptacyjnych (7631016)

Wersja 1.2.0-alpha04

23 kwietnia 2025 r.

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.2.0-alpha04 Wersja 1.2.0-alpha04 zawiera te zmiany.

Nowe funkcje

  • Strategie ponownego dopasowania są teraz dostępne w przypadku funkcji ListDetailPaneScaffoldSupportingPaneScaffold, które ponownie dopasowują powiązany panel w ustawieniu układu z jednym panelem.

Zmiany w interfejsie API

  • Dodaj do PaneScaffoldScope obiekt przechowujący stan, który można zapisać (Id9299)
  • Wprowadzenie strategii ponownego przepływu na potrzeby dostosowywania (I75c6a)

Poprawki błędów

  • Rozwiązaliśmy problem polegający na tym, że w pierwszym przejściu panele nie były animowane. (Ib0415)
  • Naprawianie problemu z niedziałającymi preferowanymi wysokościami. (I1913b)
  • Naprawienie błędu polegającego na tym, że dyrektywa szkieletu nie jest prawidłowo aktualizowana. (0403ab)

Wersja 1.2.0-alpha03

9 kwietnia 2025 r.

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.2.0-alpha03 Wersja 1.2.0-alpha03 zawiera te commity.

Poprawki błędów

  • ​​Naprawiono błąd nieprawidłowego wyświetlania uchwytu przeciągania w układzie z jednym panelem. (806e443 )

Aktualizacje zależności

  • Ta biblioteka jest teraz kierowana na poziom języka Kotlin 2.0 i wymaga KGP w wersji 2.0.0 lub nowszej. (Idb6b5)

Wersja 1.2.0-alpha02

26 marca 2025 r.

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.2.0-alpha02 Wersja 1.2.0-alpha02 zawiera te zmiany.

Wersja 1.2.0-alpha01

12 marca 2025 r.

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.2.0-alpha01 Wersja 1.2.0-alpha01 zawiera te zmiany.

Zmiany w interfejsie API

  • Wprowadzamy PaneScaffoldScope.preferredHeight modyfikator, który umożliwia deweloperom podawanie preferowanych wysokości paneli. Będą one stosowane w nowych strategiach adaptacyjnych, które wprowadzimy. (I957dd, b/220960090)
  • Zmień nazwy typów ComponentOverride na Override, a typów ComponentOverrideContext na OverrideScope. (Id973c)
  • Zmiana nazw niektórych metod zastępowania komponentów. (I222b3)

Tworzenie adaptacyjnej wersji 1.1 Material3

Wersja 1.1.0

12 marca 2025 r.

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.1.0 Wersja 1.1.0 zawiera te zmiany.

Ważne zmiany od wersji 1.0.0

Wersja 1.1.0-rc01

26 lutego 2025 r.

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.1.0-rc01 Wersja 1.1.0-rc01 zawiera te zmiany.

Poprawki błędów

  • Wyłącz przewidywane przejście wstecz w przypadku układu z 3 okienkami (ab6fd0b)

Wersja 1.1.0-beta02

12 lutego 2025 r.

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.1.0-beta02 Wersja 1.1.0-beta02 zawiera te zmiany.

Zmiany w interfejsie API

  • Zmieniliśmy sposób ustawiania wartości isPredictiveBackInProgress w funkcjach animacji MutableThreePaneScaffoldState, aby zachować spójność stanu. (Idc97f)

Poprawki błędów

  • Domyślne działanie przycisku „Wstecz” w przypadku elementów NavigableListDetailPaneScaffoldNavigableSupportingPaneScaffold zostało zmienione na PopUntilScaffoldValueChange, aby zachować spójność z pozostałą częścią biblioteki. (I873f0)
  • Ustaw prawidłową kolejność przechodzenia po panelach ułatwień dostępu. (67d030)
  • Rozwiązano problem z niezapisywaniem stanów treści panelu. (88b0ff)
  • Obsługa alternatywnych działań związanych z ułatwieniami dostępu zamiast przeciągania. (28266d)
  • Ogłaszaj bieżący podział okna po jego zmianie. (0c3a80)

Wersja 1.1.0-beta01

29 stycznia 2025 r.

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.1.0-beta01 Wersja 1.1.0-beta01 zawiera te zmiany.

Zmiany w interfejsie API

  • Wprowadź funkcje fabryczne do tworzenia punktów zakotwiczenia rozwinięcia panelu typu offsetowego od początku i końca. (I2eb21)
  • Zamknij interfejs PaneMotion i usuń jego domyślne metody przejścia. (Ifc4c7)
  • Wprowadź interfejsy API, aby uzyskać bieżący element docelowy i animować go. (Icf95d)
  • Wprowadzenie interfejsów API ułatwień dostępu do rozwijania paneli (Icc669)
  • Zmień typ PaneScaffoldParentData.preferredWidth na DP. (Id98ee)

Wersja 1.1.0-alpha09

15 stycznia 2025 r.

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.1.0-alpha09 Wersja 1.1.0-alpha09 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodawanie i używanie nowej eksperymentalnej adnotacji ExperimentalMaterial3AdaptiveComponentOverrideApi. (Id45aa)
  • Ukryj ThreePaneScaffoldHorizontalOrder.toLtrOrder. (I6f8d2)
  • ThreePaneScaffoldPredictiveBackHandler został(a) ustawiony(a) jako publiczny. (I1a995, b/370543873)
  • Dodano właściwość isPredictiveBackInProgress do usługi ThreePaneScaffoldState. (I1a995, b/370543873)
  • Utwórz mechanizm zastępowania dla AnimatedPane, aby obsługiwać implementacje ładowania z boku na różnych formatach. (Id7622)

Poprawki błędów

  • Rozwiązaliśmy problem polegający na tym, że kierunek osiadania nie miał punktów zakotwiczenia. (df8257d)

Wersja 1.1.0-alpha08

12 grudnia 2024 r.

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.1.0-alpha08 Wersja 1.1.0-alpha08 zawiera te zmiany.

Zmiany w interfejsie API

  • Wprowadź funkcję currentWindowDpSize. (I99125, b/296300441)
  • Udostępnij PaneScaffoldParentDataThreePaneScaffoldHorizontalOrder.toLtrOrder() (I2d6b7)
  • Usuń PaneScaffoldMotionScope i przekształć je w pole w sekcji PaneScaffoldTransitionScope. Zmień też jego nazwę na PaneScaffoldMotionDataProvider i usuń dostęp do podstawowej struktury danych PaneMotionData. Zamiast tego udostępnij metody pobierania i pętli do uzyskiwania dostępu do danych. (Id8884)
  • Utwórz mechanizm zastępowania dla ThreePaneScaffold, aby obsługiwać implementacje ładowania z boku na różnych formatach. (I5280f)
  • Domyślnie ustawia stan rozwinięcia panelu na wartość null (Ia65f8, b/376394520)

Wersja 1.1.0-alpha07

13 listopada 2024 r.

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.1.0-alpha07 Wersja 1.1.0-alpha07 zawiera te zmiany.

Zmiany w interfejsie API

  • Usunięcie implementacji uchwytu przeciągania w bibliotece adaptacyjnej i zachęcanie użytkowników do korzystania z jej wersji M3. Jednocześnie wprowadzimy modyfikator, który umożliwi przeciąganie panelu w celu jego rozwinięcia za pomocą udostępnionego komponentu uchwytu do przeciągania. Ukryj też DraggableState jako szczegół implementacji, aby w razie potrzeby móc go później zmienić. (Ib50cd)
  • Przenosi punkt wejścia dostosowywania ruchu panelu z funkcji szkieletowych do AnimatedPane zgodnie z opiniami UXR. (I10f72)
  • Wprowadziliśmy obsługę szybkiego przesunięcia i specyfikację animacji niestandardowej do rozwijania panelu. (Ie207d, b/362584341)

Poprawki błędów

  • Rozwiązywanie problemów z przewidywanym powrotem po anulowaniu. (36a3e0a), (b/369899645)

Wersja 1.1.0-alpha06

30 października 2024 r.

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.1.0-alpha06 Wersja 1.1.0-alpha06 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodano FloatRange do PaneScaffoldTransitionScope.motionProgress. (Iac0dd)
  • Zmień typ parametrów nawigatora na typy ogólne w szablonach z możliwością nawigacji. (I1da6e)

Wersja 1.1.0-alpha05

16 października 2024 r.

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.1.0-alpha05 Wersja 1.1.0-alpha05 zawiera te zmiany.

Zmiany w interfejsie API

  • Wprowadziliśmy klasę specyfikacji animacji, aby zapewnić bardziej spójne zachowanie ruchu i możliwość rozbudowy w przyszłości. (I2d3cc)
  • Podaj typ ruchu i zmień nazwę currentXXXXX w PaneMotionData na originXXXX. (I7c61a)

Wersja 1.1.0-alpha04

2 października 2024 r.

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.1.0-alpha04 Wersja 1.1.0-alpha04 zawiera te zmiany.

Nowe funkcje

  • Dodaliśmy obsługę przewidywanego przejścia wstecz w przypadku NavigableListDetailPaneScaffoldNavigableSupportingPaneScaffold. (I4dc21, b/359616816)

Zmiany w interfejsie API

  • Dodano ThreePaneScaffoldState do ThreePaneScaffoldNavigator. Metody nawigacji zostały suspend, aby obsługiwać nawigację z animacją. Dodano seekBack, aby obsługiwać częściowe stany nawigacji (np. przewidywanie powrotu). (I5a651, b/359616816)
  • Dodano parametr MutableThreePaneScaffoldState, aby kontrolować przejście między wartościami rusztowania. Obecna usługa ThreePaneScaffoldState została ustawiona jako tylko do odczytu. (Idb3c6)
  • Udostępnianie domyślnych implementacji ruchu panelu (I95a7b)
  • Włączanie ustawiania początkowego punktu zakotwiczenia stanu rozwinięcia panelu (Ie41b3, b/362350560)

Poprawki błędów

  • Wymuszanie minimalnego rozmiaru obszaru dotyku uchwytu przeciągania 48 x 48 dp (7ce6635, b/366018217)
  • Przywracanie zakotwiczonej pozycji po zmianach konfiguracji (3c9fc6b, b/362353672)

Wersja 1.1.0-alpha03

18 września 2024 r.

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.1.0-alpha03 Wersja 1.1.0-alpha03 zawiera te zmiany.

Wersja 1.1.0-alpha02

4 września 2024 r.

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.1.0-alpha02 Wersja 1.1.0-alpha02 zawiera te zmiany.

Nowe funkcje

  • Dostosowywanie ruchu (I0bf9c), (I80e66) jest obsługiwane przez twórców, którzy mogą zmieniać domyślne ruchy podczas zmian stanu adaptacyjnego szkieletu. Twórcy mogą wybierać spośród domyślnych przejść podczas wchodzenia i wychodzenia lub wdrażać w pełni niestandardowe przejścia za pomocą informacji dostarczanych przez nowe zakresy ruchu.
  • Wdrożenie animacji zanikania uchwytów do przeciągania panelu (46e3c69)
  • Umożliwianie zapisywania zapamiętanych PaneExpansionState (61ff76f)

Zmiany w interfejsie API

  • Dodanie do szkieletów brakujących interfejsów API rozwijania paneli (Ic5bc0)
  • Nazwa elementu została zmieniona z ThreePaneScaffoldDestinationItem.content na contentKey. Argument typu domyślnego funkcji rememberListDetailPaneScaffoldNavigatorrememberSupportingPaneScaffoldNavigator został zmieniony z Nothing na Any. (I58749)
  • Oznaczanie wersji ThreePaneScaffoldState jako stabilnej (I64aec)
  • Ustawianie zakresu parametrów uchwytu przeciągania (Ic0aa2)

Wersja 1.1.0-alpha01

21 sierpnia 2024 r.

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.1.0-alpha01 Wersja 1.1.0-alpha01 zawiera te zmiany.

Nowe funkcje

  • Wprowadzenie obsługi rozwijania paneli w przypadku adaptacyjnych struktur.

Zmiany w interfejsie API

  • Wprowadzenie do publicznego dostępu do interfejsów API rozwijania paneli (I301d6)
  • Wprowadzono ThreePaneScaffoldState do przejść wartości w panelu sterowania. Dodano przeciążenia funkcji ListDetailPaneScaffold i SupportingPaneScaffold, które akceptują ten stan. (I5db3b)
  • Wprowadzenie klawisza rozwijania panelu i interfejsu dostawcy kluczy (Id621f)

Poprawki błędów

  • Naprawiono nieprawidłowe obliczanie partycji w przypadku wykluczonego zawiasu. (9dfd483)

Compose Material3 Adaptive w wersji 1.0

Wersja 1.0.0

4 września 2024 r.

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.0.0 Wersja 1.0.0 zawiera te zmiany.

Główne funkcje wersji 1.0.0

Wersja 1.0.0-rc01

21 sierpnia 2024 r.

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.0.0-rc01 Wersja 1.0.0-rc01 zawiera te commity.

Poprawki błędów

  • Naprawiono nieprawidłowe obliczanie partycji w przypadku wykluczonego zawiasu. (9dfd483)

Wersja 1.0.0-beta04

26 czerwca 2024 r.

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.0.0-beta04 Wersja 1.0.0-beta04 zawiera te zmiany.

Poprawki błędów

  • Rozwiązuje problem polegający na tym, że po zaktualizowaniu granic zawiasu układ nie jest odpowiednio aktualizowany. (71e9cf1)

Wersja 1.0.0-beta03

12 czerwca 2024 r.

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.0.0-beta03 Wersja 1.0.0-beta03 zawiera te zmiany.

Poprawki błędów

  • Naprawiono awarie spowodowane nieprawidłowym rozwiązywaniem zależności w wersji beta02.

Wersja 1.0.0-beta02

29 maja 2024 r.

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.0.0-beta02 Wersja 1.0.0-beta02 zawiera te zmiany.

Wersja 1.0.0-beta01

14 maja 2024 r.

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.0.0-beta01 Wersja 1.0.0-beta01 zawiera te zmiany.

Wersja 1.0.0-alpha12

1 maja 2024 r.

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.0.0-alpha12 Wersja 1.0.0-alpha12 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodawanie informacji o isFlat do HingeInfo (Ie0516, b/333784198)
  • Udostępnianie interfejsów API dostosowujących się w wersji nieeksperymentalnej (I1d038)
  • Udostępnienie interfejsów API układu adaptacyjnego jako funkcji nieeksperymentalnych (Id23df)
  • Zmieniono BackNavigationBehavior z wyliczenia na klasę wartości (Id8757)

Poprawki błędów

  • Zmień ułamek przejścia na wartość lambda (I6f5a9)
  • Rozwiązanie problemu ze stanem początkowym elementu SizeTracker (18326a9)
  • Uwzględnij listę zawiasów w sprawdzaniu równości Posture (6687137)

Wersja 1.0.0-alpha11

17 kwietnia 2024 r.

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.0.0-alpha11 Wersja 1.0.0-alpha11 zawiera te zmiany.

Zmiany w interfejsie API

  • Uszczelnij interfejsy zakresu. (Iefa57)
  • Przedstaw AnimatedPaneScope. (I62d73, b/332750742)
  • AdaptStrategy – szczelne i stabilne. (Ia28b2)
  • Wprowadź metodę kopiowania PaneScaffoldDirective. (I9291f)
  • Oznacz ThreePaneScaffoldScope jako eksperymentalne. (I9d527)
  • Udostępniaj łatwe w użyciu interfejsy API, które obsługują nawigację. (I263f0, b/321010778)

Wersja 1.0.0-alpha10

3 kwietnia 2024 r.

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.0.0-alpha10 Wersja 1.0.0-alpha10 zawiera te zmiany.

Zmiany w interfejsie API

  • Ustaw domyślną preferowaną szerokość jako adaptacyjną i możliwą do dostosowania. (Ic3abc)
  • Zmień nazwy funkcji obliczeniowych dyrektywy szkieletowej. (I10855)
  • Usunięcie dopełnień i wcięć z interfejsów API struktury. (I786f8)
  • Dodaj metody zapamiętywania nawigatora bez typów ogólnych. (I607c3)

Wersja 1.0.0-alpha09

20 marca 2024 r.

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.0.0-alpha09 Wersja 1.0.0-alpha09 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodaj pola przejścia stanu do ThreePaneScaffoldScope. (I3d917)
  • Zmień kolejność parametrów szkieletu. (I4dff5)
  • Podaj wartość domyślną parametru modyfikatora AnimatedPane. (I77dd7)

Poprawki błędów

  • Uwzględnij rozmiar separatora w ruchach panelu. (a3174ca)

Wersja 1.0.0-alpha08

6 marca 2024 roku

Zostanie wycofaneandroidx.compose.material3.adaptive:adaptive-*:1.0.0-alpha08 Wersja 1.0.0-alpha08 zawiera te zmiany.

Nowe funkcje

  • Wprowadziliśmy opóźnione przesuwanie podczas przełączania paneli. (I1a38e)

Zmiany w interfejsie API

  • Usunięto interfejs ThreePaneScaffoldState. (I63f23)

Wersja 1.0.0-alpha07

21 lutego 2024 r.