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-Einzüge 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.
Scaffold
wendet die Insets nicht auf Inhalte an. 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 ist ein LazyColumn
in einem Scaffold
zu sehen, wobei die Edge-to-Edge-Anzeige deaktiviert und aktiviert ist:
Standard-Insets überschreiben
Sie können den Parameter windowInsets
ändern, der an die Composable-Funktion übergeben wird, um das Verhalten der Composable-Funktion 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") } )