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
TopAppBar/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(Inhalt in einer modalen Navigationsleiste): Wendet vertikale und Start-Insets auf den Inhalt an.ModalBottomSheet: Wendet die unteren Insets an.NavigationBar: Wendet die unteren und horizontalen Insets an.NavigationRail: Wendet die vertikalen und Start-Insets an.
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") } )