프로그래밍/android

Android 11 Full Screen

-샤리- 2021. 7. 29. 14:36

Android Full screen 처리하는 방식이 바뀌었는지 이전 코드가 Android 11 폰에서 제대로 동작하지 않더라. 아래 Android developer 사이트를 참고하자.

 

https://developer.android.com/training/system-ui/immersive?hl=ko 

 

전체 화면 모드 사용 설정  |  Android 개발자  |  Android Developers

동영상, 게임, 이미지 갤러리, 책, 프레젠테이션 슬라이드 같은 콘텐츠를 이용하기에 최적의 환경은 전체 화면입니다. 이 페이지에서는 전체 화면에서 사용자를 콘텐츠에 더욱 몰입하게 하는 방

developer.android.com

 

https://developer.android.com/guide/topics/display-cutout

 

디스플레이 컷아웃 지원  |  Android 개발자  |  Android Developers

디스플레이 컷아웃은 센서를 위한 공간을 제공하는 동시에 에지 투 에지 경험을 가능하게 합니다.

developer.android.com

 

YoutActivity.kt

private fun hideSystemUI() {
	// Enables regular immersive mode.
	// For "lean back" mode, remove SYSTEM_UI_FLAG_IMMERSIVE.
	// Or for "sticky immersive," replace it with SYSTEM_UI_FLAG_IMMERSIVE_STICKY
	window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_IMMERSIVE
                // Set the content to appear under the system bars so that the
                // content doesn't resize when the system bars hide and show.
                or View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                // Hide the nav bar and status bar
                or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                or View.SYSTEM_UI_FLAG_FULLSCREEN)
}
// Shows the system bars by removing all the flags
// except for the ones that make the content appear under the system bars.
private fun showSystemUI() {
        window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN)
}

 

 

themes.xml (아래 코드는 requires API 27)

<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>