Viele der integrierten Material 3-Composables (androidx.compose.material3
) verarbeiten Insets selbst, je nachdem, wie die Composables gemäß den Material-Spezifikationen in Ihrer App platziert werden.
Composables für die Verarbeitung von Insets
Nachfolgend finden Sie eine Liste der Material Components, die Insets automatisch verarbeiten.
App-Leisten
TopAppBar
/SmallTopAppBar
/CenterAlignedTopAppBar
/MediumTopAppBar
/LargeTopAppBar
: Wendet die oberen und horizontalen Seiten der Systemleisten als Padding an, da sie oben im Fenster verwendet wird.BottomAppBar
: Wendet die unteren und horizontalen Seiten der Systemleisten als Padding an.
Content-Container
ModalDrawerSheet
/DismissibleDrawerSheet
/PermanentDrawerSheet
(Inhalte in einem modalen Navigationsbereich): Wendet vertikale und Start-Insets auf Inhalte an.ModalBottomSheet
: Wendet die bottom-Einzüge an.NavigationBar
: Wendet die bottom- und horizontal-Insets an.NavigationRail
: Wendet die Insets vertical und start an.
Gerüst
Standardmäßig stellt Scaffold
Insets als Parameter paddingValues
zur Verfügung, die Sie verwenden können.
Bei Scaffold
werden die Insets nicht auf Inhalte angewendet. Das liegt in Ihrer Verantwortung.
So können Sie diese Insets beispielsweise mit einem LazyColumn
innerhalb eines Scaffold
verwenden:
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 sehen Sie ein LazyColumn
in einem Scaffold
mit deaktivierter und aktivierter Edge-to-Edge-Anzeige:
Standard-Insets überschreiben
Sie können den Parameter windowInsets
ändern, der an die Composable übergeben wird, um das Verhalten der Composable zu konfigurieren. Dieser Parameter kann ein anderer Typ von Fenstereinsatz sein, der stattdessen angewendet werden soll, oder er kann durch Übergeben 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") } )