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가 동기화되도록 하는 것이 좋습니다. 예를 들어 이 리스너를 사용하여 상태 표시줄이 숨겨지거나 표시되면 작업 모음도 함께 숨겨지거나 표시되도록 할 수 있습니다.