Der Einfachheit halber verarbeiten viele der integrierten Material 3-Kompositionen (androidx.compose.material3) Insets selbst, je nachdem, wie die Kompositionen gemäß den Material-Spezifikationen in Ihrer App platziert sind.
Composables für die Verarbeitung von Insets
Im Folgenden finden Sie eine Liste der Material-Komponenten, die Insets automatisch verarbeiten.
App-Leisten
TopAppBar/CenterAlignedTopAppBar/MediumTopAppBar/LargeTopAppBar: Wendet die obere und die horizontale Seite der Systemleisten als Padding an, da es oben im Fenster verwendet wird.BottomAppBar: Wendet die untere und die horizontale Seite der Systemleisten als Padding an.
Inhaltscontainer
ModalDrawerSheet/DismissibleDrawerSheet/PermanentDrawerSheet(Inhalt in einer modalen Navigationsleiste): Wendet vertikale und Start-Insets auf den Inhalt an.ModalBottomSheet: Wendet die unteren Einsätze an.NavigationBar: Wendet die unteren und horizontalen Einsätze an.NavigationRail: Wendet die vertikalen und Start-Insets an.
Scaffold
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.
Beispiel: So verwenden Sie diese Insets mit einem 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 ) { // .. } }
Das folgende Video zeigt eine LazyColumn in einer Scaffold mit deaktivierter und aktivierter randloser Anzeige:
Die Verwendung des Parameters PaddingValues in Scaffold reicht in der Regel aus, um die UI von der System-UI und den Display-Aussparungen zu trennen. Vermeiden Sie zusätzliche Ansätze zur Verarbeitung von Einrückungen wie Lineale, Padding-Modifikatoren oder Modifikatoren für die Einrückungsgröße, wenn Sie Scaffold verwenden, um zu vermeiden, dass zu viel Padding auf Ihre Benutzeroberfläche angewendet wird.
Standardeinzüge überschreiben
Sie können den Parameter windowInsets ändern, der an die zusammensetzbare Funktion übergeben wird, um das Verhalten der zusammensetzbaren Funktion zu konfigurieren. Dieser Parameter kann ein anderer Typ von Fenster-Inset sein, der stattdessen angewendet werden soll, oder er kann durch Übergabe einer leeren Instanz deaktiviert werden: WindowInsets(0, 0, 0, 0).
Wenn Sie beispielsweise die Inset-Verarbeitung für LargeTopAppBar deaktivieren möchten, setzen Sie den Parameter windowInsets auf eine leere Instanz:
LargeTopAppBar( windowInsets = WindowInsets(0, 0, 0, 0), title = { Text("Hi") } )