Material 3-Einleger verwenden

Viele der integrierten Material 3-Komposables (androidx.compose.material3) verarbeiten Insets selbst. Das hängt davon ab, wie die Komposables gemäß den Material-Spezifikationen in Ihrer App platziert sind.

Komposables für die Inset-Verarbeitung

Im Folgenden finden Sie eine Liste der Material Komponenten, die Insets automatisch verarbeiten.

App-Leisten

Content-Container

Gerüst

Standardmäßig stellt Scaffold Insets als Parameter PaddingValues bereit, die Sie verwenden können. Scaffold wendet die Insets nicht auf Inhalte an. Das müssen Sie selbst tun. So verwenden Sie diese Insets beispielsweise mit einer LazyColumn in einem 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
    ) {
        // ..
    }
}

Im folgenden Video ist eine LazyColumn in einem Scaffold zu sehen, bei der die Edge-to-Edge-Anzeige deaktiviert und aktiviert ist:

In der Regel reicht es aus, den Parameter PaddingValues in Scaffold zu verwenden, um die UI von der System-UI und den Display-Aussparungen zu entfernen. Vermeiden Sie zusätzliche Ansätze zur Inset-Verarbeitung wie Lineale, Padding-Modifikatoren oder Modifikatoren für die Inset-Größe, wenn Sie Scaffold verwenden, um zu viel Padding auf die UI anzuwenden.

Standard-Insets überschreiben

Sie können den Parameter windowInsets ändern, der an das Komposable übergeben wird, um das Verhalten des Komposables zu konfigurieren. Dieser Parameter kann ein anderer Typ von Fenster-Inset sein, der stattdessen angewendet werden soll, oder er kann deaktiviert werden, indem Sie eine leere Instanz übergeben: WindowInsets(0, 0, 0, 0).

Wenn Sie beispielsweise die Inset-Verarbeitung für LargeTopAppBar, setzen Sie den windowInsets Parameter auf eine leere Instanz:

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