Để dễ sử dụng, nhiều thành phần kết hợp Material 3 tích hợp sẵn (androidx.compose.material3) sẽ tự xử lý phần lồng ghép, dựa trên cách đặt các thành phần kết hợp trong ứng dụng theo thông số kỹ thuật của Material.
Thành phần kết hợp xử lý phần lồng ghép
Sau đây là danh sách Thành phần Material tự động xử lý phần lồng ghép.
Thanh ứng dụng
TopAppBar/CenterAlignedTopAppBar/MediumTopAppBar/LargeTopAppBar: Áp dụng các cạnh trên và ngang của thanh hệ thống làm khoảng đệm vì thanh này được dùng ở đầu cửa sổ.BottomAppBar: Áp dụng các cạnh dưới và ngang của thanh hệ thống làm khoảng đệm.
Vùng chứa nội dung
ModalDrawerSheet/DismissibleDrawerSheet/PermanentDrawerSheet(nội dung bên trong ngăn điều hướng phụ): Áp dụng các phần lồng ghép theo chiều dọc và bắt đầu cho nội dung.ModalBottomSheet: Áp dụng lề dưới.NavigationBar: Áp dụng lề dưới và lề ngang.NavigationRail: Áp dụng phần lồng ghép theo chiều dọc và bắt đầu.
Scaffold
Theo mặc định,
Scaffold
cung cấp các phần lồng ghép dưới dạng tham số PaddingValues để bạn sử dụng.
Scaffold không áp dụng phần lồng ghép cho nội dung; bạn phải chịu trách nhiệm về việc này.
Ví dụ: để sử dụng các phần lồng ghép này với LazyColumn bên trong 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 ) { // .. } }
Video sau đây cho thấy LazyColumn trong Scaffold khi bật và tắt chế độ hiển thị tràn viền:
Thông thường, bạn chỉ cần sử dụng tham số PaddingValues trong Scaffold để lồng giao diện người dùng ra khỏi giao diện người dùng hệ thống và vết cắt trên màn hình. Tránh sử dụng các phương pháp xử lý phần lồng ghép bổ sung như thước kẻ, đối tượng sửa đổi khoảng đệm hoặc đối tượng sửa đổi kích thước phần lồng ghép nếu sử dụng Scaffold để tránh áp dụng quá nhiều khoảng đệm cho giao diện người dùng.
Ghi đè phần lồng ghép mặc định
Bạn có thể thay đổi tham số windowInsets được truyền đến composable để định cấu hình hành vi của composable. Tham số này có thể là một loại phần lồng ghép cửa sổ khác để áp dụng, hoặc bị tắt bằng cách truyền một thực thể trống: WindowInsets(0, 0, 0, 0).
Ví dụ: để tắt tính năng xử lý phần lồng ghép trên LargeTopAppBar, hãy đặt tham số windowInsets thành một thực thể trống:
LargeTopAppBar( windowInsets = WindowInsets(0, 0, 0, 0), title = { Text("Hi") } )