Material 3-Einleger verwenden

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

Composables 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 liegt in Ihrer Verantwortung. 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 Composables übergeben wird, um das Verhalten des Composables 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, deaktivieren möchten, legen Sie für den windowInsets Parameter eine leere Instanz fest:

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