Nếu ứng dụng của bạn chứa cả mã Compose và mã Khung hiển thị, thì bạn có thể cần phải xác định rõ ràng hệ thống phần lồng ghép nào mà mỗi mã sẽ sử dụng và đảm bảo rằng phần lồng ghép được gửi đến các khung hiển thị ngang hàng.
Ghi đè phần lồng ghép mặc định
Bạn có thể cần ghi đè phần lồng ghép mặc định khi màn hình của bạn có cả Khung hiển thị và mã Compose trong cùng một hệ phân cấp. Trong trường hợp này, bạn cần phải xác định rõ thành phần nào sẽ sử dụng phần lồng ghép và thành phần nào sẽ bỏ qua phần lồng ghép.
Ví dụ: nếu bố cục ngoài cùng của bạn là bố cục Khung hiển thị Android, bạn nên sử dụng phần lồng ghép trong hệ thống Khung hiển thị và bỏ qua phần lồng ghép đó cho Compose.
Ngoài ra, nếu bố cục ngoài cùng của bạn là một thành phần kết hợp, thì bạn nên sử dụng phần lồng ghép trong Compose và đệm các thành phần kết hợp AndroidView
cho phù hợp.
Theo mặc định, mỗi ComposeView
sẽ sử dụng tất cả phần lồng ghép ở mức tiêu thụ WindowInsetsCompat
. Để thay đổi hành vi mặc định này, hãy đặt AbstractComposeView.consumeWindowInsets
thành false
.
Khả năng tương thích ngược khi gửi phần lồng ghép cho các khung hiển thị
Nếu ứng dụng của bạn chứa mã Lượt xem, bạn có thể cần xác nhận rằng phần lồng ghép được gửi đến các khung hiển thị cùng cấp trên những thiết bị chạy Android 10 (API cấp 29) trở xuống. Hãy xem hướng dẫn về các khung hiển thị tràn viền để biết thêm thông tin.
Biểu tượng thanh hệ thống
Việc gọi enableEdgeToEdge
đảm bảo màu biểu tượng thanh hệ thống sẽ cập nhật khi giao diện thiết bị thay đổi.
Khi chuyển sang chế độ tràn viền, bạn có thể cần cập nhật màu biểu tượng thanh hệ thống theo cách thủ công để chúng tương phản với nền của ứng dụng. Ví dụ: để tạo biểu tượng thanh trạng thái sáng:
Kotlin
WindowCompat.getInsetsController(window, window.decorView) .isAppearanceLightStatusBars = false
Java
WindowCompat.getInsetsController(window, window.getDecorView()) .setAppearanceLightStatusBars(false);