안드로이드 단말이 대개 하드웨어 키가 있는 것하고, 소프트 키가 있는데...레이아웃이 맞지 않는 경우가 종종 있다.

그래서, RelativeLayout으로 위젯들을 배치하는 것도 괜찮지만 아무래도 전체 화면을 모두 동일하게 사용하고 싶은 경우가 발생한다.


안드로이드 4.0 이후(API Level 14)부터 하단 네비게이션 바(Navigation bar)와 상단의 상태바(Status bar)를 감추는 옵션을 제공했다. 

킷캣(API Level 19)부터는 Immersive mode를 제공한다.


관련 URL - https://developer.android.com/training/system-ui/immersive.html


네비바와 상태바를 사용자의 화면 상단을 끌어서 표시하고, 터치로 감추려면 다음과 같이 하면 된다.



public void onWindowFocusChanged(boolean hasFocus) {

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {  

if (hasFocus) {

getWindow().getDecorView().setSystemUiVisibility(

View.SYSTEM_UI_FLAG_LAYOUT_STABLE

| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION

| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN

| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION

| View.SYSTEM_UI_FLAG_FULLSCREEN

| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);

}

}

}

 



+ Recent posts