Thursday, May 21, 2015

Android 액션바 동적으로 숨기기/보이기

액션바와 타이틀바를 구분하지 못하던 때에는 계속 타이틀바를 동적으로 숨기기/보이기에 대해서 연구했는데 액션바로 구현을 하면서 모든 것이 해결이 되었다.

액션바를 위해서 다음과 같이 windowActionBarOverlay를 true로 설정한다. 동적으로 나타날거기 때문에 겹쳐지게 해야 한다.
res/values/styles.xml
   <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="android:windowActionBarOverlay">true</item>
        <!-- Support library compatibility -->
        <item name="windowActionBarOverlay">true</item>

        <item name="android:actionBarStyle">@style/MyActionBar</item>
    </style>

    <style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
    </style>

그리고 AppTheme를 Activity에 적용한다.
AndroidManifest.xml
android:theme="@style/AppTheme"

그런다음 다음과 같이 ActionBar를 얻어서 동적으로 show/hide를 하면 된다. 기존의 타이틀바와 다르게 setContentView()의 위치와 상관없이 동작한다.
        android.support.v7.app.ActionBar actionBar = getSupportActionBar();
        actionBar.hide();

No comments:

Post a Comment