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 thông báo về các thay đổi về chế độ hiển thị giao diện người dùng hệ thống. Điều này rất hữu ích nếu bạn muốn đồng bộ hoá các phần khác trên giao diện người dùng bằng cách ẩn/hiện thanh hệ thống.

Đăng ký trình nghe

Để nhận thông báo về những thay đổi đối với chế độ hiển thị giao diện người dùng hệ thống, hãy đăng ký View.OnSystemUiVisibilityChangeListener vào chế độ xem của bạn. Đây thường là chế độ xem mà 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():

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.
        }
    }
});

Thông thường, bạn nên đồng bộ hoá giao diện người dùng với các thay đổi trên thanh hệ thống khả năng hiển thị. Ví dụ: bạn có thể sử dụng trình nghe này để ẩn và hiển thị thanh thao tác trong có thanh trạng thái ẩn và hiển thị.