為方便使用,許多內建的 Material 3 可組合項 (androidx.compose.material3
) 會根據 Material 規格在應用程式中放置可組合項的方式,自行處理插邊。
插邊處理可組合項
以下列出會自動處理插邊的 Material 元件。
應用程式列
TopAppBar
/SmallTopAppBar
/CenterAlignedTopAppBar
/MediumTopAppBar
/LargeTopAppBar
:將系統列的頂端和水平兩側做為邊框,因為它會用於視窗頂端。BottomAppBar
:將系統資訊列的底部和水平兩側做為邊框間距。
內容容器
ModalDrawerSheet
/DismissibleDrawerSheet
/PermanentDrawerSheet
(模式導覽匣中的內容):將垂直和開始內嵌套用至內容。ModalBottomSheet
:套用 bottom 內嵌。NavigationBar
:套用底部和水平內嵌。NavigationRail
:套用垂直和開始內嵌。
Scaffold
根據預設,Scaffold
會提供插邊做為參數 paddingValues
,供您使用。Scaffold
不會將內嵌內容套用至內容,這項責任由您負責。舉例來說,如要在 Scaffold
內使用 LazyColumn
來使用這些插入項目:
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 ) { // .. } }
以下影片顯示 Scaffold
內的 LazyColumn
,其中邊到邊顯示功能已停用和啟用:
覆寫預設內嵌
您可以變更傳遞至可組合函式的 windowInsets
參數,以設定可組合函式的行為。這個參數可以是另一種型別的視窗內嵌,用於套用,也可以透過傳遞空白例項來停用:WindowInsets(0, 0, 0, 0)
。
舉例來說,如要停用 LargeTopAppBar
的內嵌處理,請將 windowInsets
參數設為空白例項:
LargeTopAppBar( windowInsets = WindowInsets(0, 0, 0, 0), title = { Text("Hi") } )