본문 바로가기
IT 개발/안드로이드개발

[안드로이드] 안드로이드 타이틀바, 상태바 없애기

by 만능이되고픈 잡캐 2018. 9. 28.


[안드로이드] 안드로이드 타이틀바(title bar), 상태바(status bar) 없애기


안녕하세요. 오늘은 안드로이드 개발을 할 때에 상태바와 타이틀바를 어떻게하면 제거하는 지에 대해 알려드리려고 합니다.

우선, 시작하기에 앞서 상태바가 무엇인지, 타이틀바가 무엇인지 알아보도록 하겠습니다.

핸드폰을 보면 가장 상단에 푸쉬알람, 와이파이, LTE, 정보, 업데이트 정도, 배터리잔량, 시간 등 많은 정보들이 떠 있죠?

그게 바로 상태바(status bar)입니다. 이 상태바는 없앨 수도 있고, 색상을 원하는 색으로 바꾸어 줄 수도 있는데요. 그건 나중에 따로 포스팅하도록 하겠습니다. 

그리고 그 아래에 testapp 이라고 적혀있는 부분이 바로 타이틀바 라고 불리는데요.

내가 정해준 타이틀 제목이 저기에 떠서 타이틀 바라고도 불리고 뒤로가기, 세팅값 등을 나타낼 수도 있습니다.


앱을 만들다보면 화면구성을 할 때에 화면에 비중을 더 주기위해 타이틀바와 상태바를 없애버리는 경우가 있습니다.

어떻게 하는지 예제를 통해 알아보겠습니다.


 타이틀바 없애기


[AndroidManifest.xml]

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.test.testapp"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>

기본적으로 앱을 만들게 되면 이런설정으로 구성되어 있을 겁니다.

첫번 째 방법
android:theme="@style/AppTheme"를 Theme.AppCompat.NoActionBar로 바꾸어주면 타이틀바가 사라집니다.
android:theme="@style/Theme.AppCompat.NoActionBar"

두번 째 방법은 values의 styles.xml을 바꾸어 주는 방법입니다.
[styles.xml]
<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>

</resources>
리소스에 <item name="windowActionBar">false</item>와<item name="windowNoTitle">true</item>를 추가해주어 타이틀바를 없애주는 방법입니다.



 상태바 없애기

상태바를 없애는 방법도 여러가지가 있습니다.

그 중 첫번 째 방법은 Activity에 OnCreate가 될 때 바꾸어 주는 것입니다. setContentView 앞에 다음과 같이 설정해 줍니다.

다음과 같은 방법을 사용하면 원하는 Activity의 상태바만 없애줄 수 있습니다.


[MainActivity.java]

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_main);

        editText = (EditText)findViewById(R.id.edit1);
        textView1 = (TextView)findViewById(R.id.resultText1);

        //저장된 값을 불러오기 위해 같은 네임파일을 찾음.
        SharedPreferences sf = getSharedPreferences("sFile",MODE_PRIVATE);
        //text라는 key에 저장된 값이 있는지 확인. 아무값도 들어있지 않으면 ""를 반환
        String text = sf.getString("text","");
        textView1.setText(text);

    }


두번 째 방법

마찬가지로 styles.xml을 수정하는 방법입니다.


[styles.xml]

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



 구현화면