private fun fullScreen(fullScreenOption : Int) {
window.decorView.systemUiVisibility = (
fullScreenOption
or View.SYSTEM_UI_FLAG_LAYOUT_STABLE
or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
or View.SYSTEM_UI_FLAG_FULLSCREEN )
}
- 위 두 옵션은 상태표시줄이나, 탐색메뉴를 없애 전체화면으로 만들어주며, 필요시 아래나 위에서 스와이프 동작을 하면 상태표시줄과 탐색메뉴가 동시에 보이게 됩니다.
- 다만 sticky immersive옵션을 주면 상태표시줄이나, 탐색메뉴가 불투명하게 보이며, 스와이프 후 일정시간이 지나면 다시 전체화면으로 돌아가지만, Immersive옵션의 경우 스와이프 후 상태표시줄과 탐색메뉴가 불투명하지 않고, 일정시간이 지나도 계속 존재함을 확인하실 수 있습니다. (촬영 등에 탐색이벤트를 사용할일이 적은 Activity에 적합해보입니다.)
- 만일 lean back 옵션을 주고 싶다면, fullScreenOption 매개변수를 지워주시면 됩니다. (lean back 옵션의 경우 Activity를 터치하면 상태표시줄과 탐색메뉴가 나오게됩니다. - 유저가 동영상을 보다가 어떠한 탐색 이벤트 등을 발생하고 싶을때 적합한듯 보입니다.), 아래 예시 참조
private fun fullScreen() {
window.decorView.systemUiVisibility = (
or View.SYSTEM_UI_FLAG_LAYOUT_STABLE
or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
or View.SYSTEM_UI_FLAG_FULLSCREEN )
}
- 위 함수는 onWindowFocusChanged 함수안에서 실행해주면 됩니다. (아래 예제 참조)
override fun onWindowFocusChanged(hasFocus : Boolean) {
super.onWindowFocusChanged(hasFocus)
if(hasFocus) fullScreen(View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY)
}
- onWindowFocusChanged함수는 Activity의 선택(Focus)여부를 확인하는 함수입니다. (override하여 사용하시면 됩니다.)