2026/02/14

오늘의 이야기











반응형







앱을 하나 만들다 보니.... 전체 화면에 보일 수 있도록 만들어 달라는 요청이 있네... 어떻게 하나 ?


구글님에게 질문을 해 본다... 그러고선 이렇게 구현을 해 보았다.


    @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에 넣어 주는 것이 좋을 것 같다.


이미지 출처 : https://developer.android.com/guide/components/activities/activity-lifecycle



 


그리고 위의 소스에서 onWindowFocusChanged 는 구글링에서 나온 부분일껀데, 아마도 윈도우가 다시 활성화 되는 시점에 처리를 하고 넣은 게 아닐까 ? 


뭐 아무튼 이렇게 처리를 하게 되면 앱이 실행되고 나서 화면 전체를 차지하게 된다.


내가 만든 앱 실행화면



이런식으로 위/아래 있는 상태바, 네비게이션바등이 다 숨어지게 된다.


 


끝.





반응형























댓글 없음:

댓글 쓰기

오늘의 이야기

Kotlin Multiplatform 프로젝트를 위한 최신 업데이트 그아이와 친구들 ?   Android Studio Meerkat | 2024.3.1 Patch 1 Build #AI-243.2497...