본문으로 바로가기

[주요 설정값]

흔히 윈도우 화면을 전체화면으로 설정하고 싶을 때, 두 가지 경우를 생각 할 수 있겠습니다.


1SYSTEM_UI_FLAG_FULLSCREEN : title(제목), status bar(화면 최상단에 위치한 것) 가리기

2SYSTEM_UI_FLAG_HIDE_NAVIGATION : 소프트키 가리기(하단 탐색키)

 

FULL CODE

package com.**.**.*****;

import android.annotation.SuppressLint;
import android.os.Handler;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends AppCompatActivity {
private final Handler mHideHandler = new Handler();

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setFullScreen();
}

private void setFullScreen() {
        View view;
view = findViewById(R.id.activity_main);
view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
}

public void onClick_Main(View view) {
setFullScreen();
}
}



onClick_Main() 클릭이벤트는, 

activity_main.xml에서 root Layout에 android:onClick 옵션으로 함수를 등록한 후 정의한 것입니다.

클릭이벤트를 설정해주지 않으면,  SYSTEM_UI_FLAG_IMMERSIVE_STICKY 옵션을 주었더라도 문제가 생기는데요. 바로!!!

사용자가 다른 앱을 시행하다가 오거나, 작업목록을 시행한 후 다시 앱으로 돌아왔을 때! 

상태바와 네비게이션바가 다시 나타나고는, 없어지지 않는 상황이 발생하게 됩니다. (onCreate가 실행될 필요가 없는한!)

때문에 화면에 대해 onClick이벤트 발생시 미리 만들어 놓은 setFullScreen()이 시행되도록 해줘야 전체화면설정을 사용자에게 다시 제공해줄 수 있습니다.



*(수정: Runnable X, Actionbat.hide()X)