Androidアプリ開発

【Android】SDKを更新するとActionbarのStyleがデフォルト状態に戻った時の対処法

SDK ManagerからAndroidSDKを更新すると、バッググラウンド画像などを設定していたActionbarがノーマル状態(背景画像などがデフォルト)に戻ってしまった。

 

調べてみると、Support ライブラリを考慮したスタイルの記述をしなければならなくなったらしい。

変更前

<!-- アクションバー -->
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar">
    <item name="android:background">@drawable/tab_icon_back</item>
    <item name="android:titleTextStyle">@style/ActionBarTitleText</item>
</style>

<style name="ActionBarTitleText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="android:textColor">@color/title_text_color</item>
</style>

<style name="MyActionBarTabStyle" parent="@style/Widget.AppCompat.ActionBar.TabView">
    <item name="android:background">@drawable/actionbar_tab_indicator</item>
</style>

 

変更後

<!-- アクションバー -->
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar">
    <item name="android:background">@drawable/tab_icon_back</item>
    <item name="android:titleTextStyle">@style/ActionBarTitleText</item>
    <!-- Support library compatibility -->
    <item name="background">@drawable/tab_icon_back</item>
    <item name="titleTextStyle">@style/ActionBarTitleText</item>
</style>

<!-- アクションバータイトルテキスト -->
<style name="ActionBarTitleText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="android:textColor">@color/title_text_color</item>
</style>

<!-- タブ -->
<style name="MyActionBarTabStyle" parent="@style/Widget.AppCompat.ActionBar.TabView">
    <item name="android:background">@drawable/actionbar_tab_indicator</item>
    <!-- Support library compatibility -->
    <item name="background">@drawable/actionbar_tab_indicator</item>
</style>

 

<!– Support library compatibility –>

部分が追記した箇所。

元の記述と比較すると、”android:”の部分を取り除いただけで対応することができる。