Composable ของ Material 3 ในตัวหลายรายการ
(androidx.compose.material3
)
จะจัดการ Inset ด้วยตนเองตามวิธีวาง Composable ในแอป
ตามข้อกำหนดของ Material เพื่อให้ใช้งานได้ง่าย
Composable สำหรับการจัดการ Inset
รายการต่อไปนี้คือรายการคอมโพเนนต์ Material ที่ จัดการระยะขอบโดยอัตโนมัติ
แถบแอป
TopAppBar
/SmallTopAppBar
/CenterAlignedTopAppBar
/MediumTopAppBar
/LargeTopAppBar
: ใช้ด้านบนและแนวนอนของแถบระบบเป็นระยะห่าง เนื่องจากใช้ที่ด้านบนของหน้าต่างBottomAppBar
: ใช้ด้านล่างและแนวนอนของแถบระบบเป็น Padding
คอนเทนเนอร์เนื้อหา
ModalDrawerSheet
/DismissibleDrawerSheet
/PermanentDrawerSheet
(เนื้อหาภายในลิ้นชักการนำทางแบบโมดัล): ใช้ระยะขอบภายในแนวตั้งและเริ่มต้นกับเนื้อหาModalBottomSheet
: ใช้ระยะขอบด้านล่างNavigationBar
: ใช้ระยะขอบด้านล่างและแนวนอนNavigationRail
: ใช้ระยะขอบแนวตั้งและเริ่มต้น
Scaffold
โดยค่าเริ่มต้น
Scaffold
จะระบุขอบเป็นพารามิเตอร์ paddingValues
เพื่อให้คุณใช้ได้
Scaffold
ไม่ได้ใช้ขอบในกับเนื้อหา ความรับผิดชอบนี้เป็นของคุณ
เช่น หากต้องการใช้ระยะขอบเหล่านี้กับ LazyColumn
ภายใน 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 ) { // .. } }
วิดีโอต่อไปนี้แสดง LazyColumn
ภายใน Scaffold
โดยปิดและเปิดใช้การแสดงผลแบบขอบจรดขอบ
ลบล้างระยะขอบเริ่มต้น
คุณเปลี่ยนพารามิเตอร์ windowInsets
ที่ส่งไปยัง Composable เพื่อ
กำหนดค่าลักษณะการทำงานของ Composable ได้ พารามิเตอร์นี้อาจเป็นประเภทการแทรกหน้าต่างอื่นเพื่อใช้แทน หรือปิดใช้โดยส่งอินสแตนซ์ว่างเปล่าได้ ดังนี้
WindowInsets(0, 0, 0, 0)
ตัวอย่างเช่น หากต้องการปิดใช้การจัดการ Inset ใน
LargeTopAppBar
ให้ตั้งค่าพารามิเตอร์ windowInsets
เป็นอินสแตนซ์ว่าง
LargeTopAppBar( windowInsets = WindowInsets(0, 0, 0, 0), title = { Text("Hi") } )