UI 공개 상태 변경에 응답

이 과정에서는 앱이 알림을 받을 수 있도록 리스너를 등록하는 방법을 설명합니다. 시스템 UI 가시성 변경사항에 대해 알아봤습니다 이 기능은 시스템 표시줄의 숨기기/표시와 UI의 다른 부분을 동기화합니다.

리스너 등록

시스템 UI 가시성 변경에 대한 알림을 받으려면 뷰에 View.OnSystemUiVisibilityChangeListener 추가 이때 뷰는 일반적으로 탐색 가시성을 제어하는 데 사용하는 뷰입니다.

예를 들어, 액티비티의 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.
    }
}

자바

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

일반적으로 시스템 표시줄의 변경사항과 UI의 동기화를 유지하는 것이 좋습니다. 가시성을 제공합니다 예를 들어, 이 리스너를 사용하여 상태 표시줄이 숨겨지고 표시됩니다.