반응형
앱을 하나 만들다 보니.... 전체 화면에 보일 수 있도록 만들어 달라는 요청이 있네... 어떻게 하나 ?
구글님에게 질문을 해 본다... 그러고선 이렇게 구현을 해 보았다.
@Override
protected void onPostResume() {
super.onPostResume();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
hideSystemUI();
}
}, 500);
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
hideSystemUI();
}
}
private void hideSystemUI() {
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
decorView.requestLayout();
}
먼저 activity 의 lifecycle 을 대해서 찾아볼 필요가 있다. 왜 그런가 하면 액티비티가 생성되면서 어느 시점에 화면을 다시 그리게 할 것인가를 정해야 할 것 같아서 이다. 개발자 페이지에서 받아온 이미지 하나를 링크을 달았다.
저 그림의 순서을 보면 onCreate 나 onStart 에 화면 다시 그리기를 넣어 놓으면 처음 실행할 때는 적용이 되겠지만, 다른 액티비티로 갔다가 돌아올때는 실행이 되지 않는 다, 그래서 혹시나, 이 액티비티에서 다른 액티비티를 호출했다가 돌아와야 하는 경우가 있다면 필수적으로 onResume에 넣어 주는 것이 좋을 것 같다.
그리고 위의 소스에서 onWindowFocusChanged 는 구글링에서 나온 부분일껀데, 아마도 윈도우가 다시 활성화 되는 시점에 처리를 하고 넣은 게 아닐까 ?
뭐 아무튼 이렇게 처리를 하게 되면 앱이 실행되고 나서 화면 전체를 차지하게 된다.
이런식으로 위/아래 있는 상태바, 네비게이션바등이 다 숨어지게 된다.
끝.
반응형
'모바일 앱(안드로이드)' 카테고리의 다른 글
안드로이드 앱 로딩 페이지 (Splash) 하나 쯤 만들기... (0) | 2021.07.30 |
---|---|
안드로이드 앱 만들기 동적 테마 변경 따라해 보기 (0) | 2021.07.29 |
안드로이드 앱 만들기 갤러리 에서 이미지 받아오기 (자동회전 방지) (0) | 2021.07.22 |
안드로이드 앱 만들기 random 한 수 그것도 중복이 없게 뽑아 볼 까 ? (0) | 2021.07.21 |
안드로이드 다국적(?) 앱 만들어 보기 (feat 카카오 번역 API, python 활용) (2) | 2021.07.06 |