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