Phản hồi các thay đổi về chế độ hiển thị giao diện người dùng

Bài học này mô tả cách đăng ký trình nghe để ứng dụng của bạn có thể nhận được thông báo về những thay đổi trong chế độ hiển thị giao diện người dùng hệ thống. Việc này rất hữu ích nếu bạn muốn đồng bộ hoá các phần khác của giao diện người dùng với việc ẩn/hiện thanh hệ thống.

Đăng ký trình nghe

Để nhận thông báo về các thay đổi trong chế độ hiển thị giao diện người dùng hệ thống, hãy đăng ký View.OnSystemUiVisibilityChangeListener cho khung hiển thị của bạn. Đây thường là chế độ xem bạn đang sử dụng để kiểm soát chế độ hiển thị điều hướng.

Ví dụ: bạn có thể thêm mã này vào phương thức onCreate() của hoạt động:

Kotlin

window.decorView.setOnSystemUiVisibilityChangeListener { visibility ->
    // Note that system bars will only be "visible" if none of the
    // LOW_PROFILE, HIDE_NAVIGATION, or FULLSCREEN flags are set.
    if (visibility and View.SYSTEM_UI_FLAG_FULLSCREEN == 0) {
        // TODO: The system bars are visible. Make any desired
        // adjustments to your UI, such as showing the action bar or
        // other navigational controls.
    } else {
        // TODO: The system bars are NOT visible. Make any desired
        // adjustments to your UI, such as hiding the action bar or
        // other navigational controls.
    }
}

Java

View decorView = getWindow().getDecorView();
decorView.setOnSystemUiVisibilityChangeListener
        (new View.OnSystemUiVisibilityChangeListener() {
    @Override
    public void onSystemUiVisibilityChange(int visibility) {
        // Note that system bars will only be "visible" if none of the
        // LOW_PROFILE, HIDE_NAVIGATION, or FULLSCREEN flags are set.
        if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
            // TODO: The system bars are visible. Make any desired
            // adjustments to your UI, such as showing the action bar or
            // other navigational controls.
        } else {
            // TODO: The system bars are NOT visible. Make any desired
            // adjustments to your UI, such as hiding the action bar or
            // other navigational controls.
        }
    }
});

Nhìn chung, bạn nên giữ cho giao diện người dùng luôn đồng bộ với các thay đổi về chế độ hiển thị thanh hệ thống. Ví dụ: bạn có thể sử dụng trình nghe này để ẩn và hiện thanh thao tác trong buổi hoà nhạc với thanh trạng thái đang ẩn và hiện.