Sau khi ứng dụng nhắm đến SDK 35 trở lên, chế độ tràn viền sẽ được thực thi. Thanh trạng thái hệ thống và thanh điều hướng bằng cử chỉ có màu trong suốt, nhưng thanh điều hướng bằng 3 nút có màu trong mờ. Gọi enableEdgeToEdge để đảm bảo khả năng tương thích ngược.
Tuy nhiên, chế độ mặc định của hệ thống có thể không phù hợp cho một số trường hợp sử dụng. Tham khảo hướng dẫn thiết kế thanh hệ thống Android và hướng dẫn thiết kế tràn viền để biết thông tin tổng quan về thời điểm nên cân nhắc sử dụng thanh hệ thống trong suốt hoặc mờ.
Tạo thanh hệ thống trong suốt
Tạo thanh điều hướng bằng cử chỉ trong suốt bằng cách nhắm đến Android 15 trở lên hoặc bằng cách gọi enableEdgeToEdge() với các đối số mặc định cho các phiên bản trước. Đối với thanh điều hướng bằng 3 nút, hãy đặt Window.setNavigationBarContrastEnforced thành false, nếu không, một lớp phủ mờ sẽ được áp dụng.
Tạo thanh hệ thống trong mờ
Để tạo thanh trạng thái trong mờ, hãy tạo một thành phần kết hợp tuỳ chỉnh chồng lên nội dung chính và vẽ một hiệu ứng chuyển màu trong vùng được bao phủ bởi các phần chèn.
class SystemBarProtectionSnippets : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // enableEdgeToEdge sets window.isNavigationBarContrastEnforced = true // which is used to add a translucent scrim to three-button navigation enableEdgeToEdge() setContent { MyTheme { // Main content MyContent() // After drawing main content, draw status bar protection StatusBarProtection() } } } } @Composable private fun StatusBarProtection( color: Color = MaterialTheme.colorScheme.surfaceContainer, ) { Spacer( modifier = Modifier .fillMaxWidth() .height( with(LocalDensity.current) { (WindowInsets.statusBars.getTop(this) * 1.2f).toDp() } ) .background( brush = Brush.verticalGradient( colors = listOf( color.copy(alpha = 1f), color.copy(alpha = 0.8f), Color.Transparent ) ) ) ) }
Đối với các ứng dụng thích ứng, hãy chèn một thành phần kết hợp tuỳ chỉnh khớp với màu của từng
ngăn, như trong phần Thiết kế tràn viền. Để tạo thanh điều hướng trong mờ, hãy đặt Window.setNavigationBarContrastEnforced thành true.