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

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

일반적으로 시스템 표시줄 표시 여부 변경사항과 UI의 동기화를 유지하는 것이 좋습니다. 예를 들어 이 리스너를 사용하여 콘서트에서 상태 표시줄이 숨겨지거나 표시되면 작업 표시줄을 숨기거나 표시할 수 있습니다.