Używanie wstawek Material 3

Dla ułatwienia wiele wbudowanych funkcji kompozycyjnych Material 3 (androidx.compose.material3) samodzielnie obsługuje wstawki na podstawie sposobu umieszczenia funkcji kompozycyjnych w aplikacji zgodnie ze specyfikacjami Material.

Funkcje kompozycyjne obsługujące wcięcia

Poniżej znajduje się lista komponentów Material Design, które automatycznie obsługują wstawki.

Paski aplikacji

Kontenery treści

Rusztowanie

Domyślnie Scaffold udostępnia elementy wewnętrzne jako parametr PaddingValues, który możesz wykorzystać. Scaffold nie stosuje wcięć do treści – to zadanie należy do Ciebie. Aby na przykład wykorzystać te wstawki za pomocą LazyColumn wewnątrz Scaffold:

Scaffold { innerPadding ->
    // innerPadding contains inset information for you to use and apply
    LazyColumn(
        // consume insets as scaffold doesn't do it by default
        modifier = Modifier.consumeWindowInsets(innerPadding),
        contentPadding = innerPadding
    ) {
        // ..
    }
}

Ten film pokazuje LazyColumn w Scaffold z wyłączonym i włączonym wyświetlaniem od krawędzi do krawędzi:

Użycie parametru PaddingValues w Scaffold zwykle wystarczy, aby odsunąć interfejs od interfejsu systemu i wycięć w ekranie. Jeśli używasz Scaffold, unikaj stosowania dodatkowych metod obsługi wcięć, takich jak linijki, modyfikatory dopełnienia czy modyfikatory rozmiaru wcięcia, aby nie dodawać zbyt dużego dopełnienia do interfejsu.

Zastąp domyślne wcięcia

Możesz zmienić parametr windowInsets przekazywany do funkcji kompozycyjnej, aby skonfigurować jej działanie. Ten parametr może być innym typem wstawki okna, którą można zastosować, lub można go wyłączyć, przekazując pustą instancję: WindowInsets(0, 0, 0, 0).

Aby na przykład wyłączyć obsługę wcięć w LargeTopAppBar, ustaw parametr windowInsets na pustą instancję:

LargeTopAppBar(
    windowInsets = WindowInsets(0, 0, 0, 0),
    title = {
        Text("Hi")
    }
)