상태바를 삭제하는 기능은 SDK 버전에 따라 다른 코드를 사용해야 하기 때문에 소개하기가 매우 어렵습니다. 여기서는 코드를 소개하기 보다는 status bar를 삭제하는 종류를 소개하는데 중점을 두었습니다.

 

제가 테스트한 환경은 아래와 같습니다.

 

Android Studio version 4.2.1
 
compileSdkVersion 30

defaultConfig {
   
applicationId
"copycoding.tistory.statusbar"
   
minSdkVersion 19
   
targetSdkVersion 30
   
versionCode 1
   
versionName "1.0"

 

일단 textview를 하나 만들어서 실행을 해 봅니다.

 

<TextView
   
android:id="@+id/button"
   
android:layout_width="match_parent"
   
android:layout_height="321dp"
   
android:text="Hellow"
   
android:background="#CCCCCCCC"
   
android:textAlignment="center"
/>

 

 

1. Status bar 삭제

 

상태바의 영역을 완전히 삭제하는 방법 입니다.

 

1.1 xml 이용

상태바 영역을 xml을 이용하여 삭제하는 방법입니다.

 

<!-- Customize your theme here. -->
<item name="android:windowFullscreen">true</item>

 

상태바가 사라지고 Title bar 와 콘텐츠 영역이 위로 올라갑니다.

 

 

1.2 java 이용

 

이번에는 java 코드를 이용하여 상태바 영역을 삭제하는 코드 입니다.

 

this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.
FLAG_FULLSCREEN);

 

또는 다음과 같은 방법을 이용할 수 있습니다.

 

View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);

 

 

2. Status bar 삭제/아이콘 유지

 

이번에는 상태바에 있는 아이콘들은 그대로 놓아두고 상태바 영역을 삭제하는 방법입니다.

 

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
    Window w = getWindow();
    w.setFlags(WindowManager.LayoutParams.
FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}

 

 

3. Status bar 사용

 

이번 예제는 상태바 영역을 삭제하지 않고 콘텐츠 영역을 확장하는 방법입니다.

표현이 정확하지 않겠지만 위에 있는 내용과 어떤 차이가 있는지 직접 보면 이해가 되실겁니다.

 

<item name="android:windowTranslucentStatus">true</item>

 

 

 

4. Source code 위치

 

xml : res > value > themes.xml
     파일에서 <!-- Customize your theme here. --> 
     이 코드 하단에 추가 합니다.

java : MainActivity.java > onCreate()
    파일에서 setContentView(R.layout.activity_main);
    이 코드 하단에 추가 합니다.

 

- copy coding -


+ Recent posts