web-dev-qa-db-ja.com

androidでAppCompat Light DarkActionBarテーマの背景とテキストの色を変更する

AppCompat Light DarkActionBarテーマをアプリに使用しました。

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">        
</style>

enter image description here

このActionBarの背景色とテキスト色を変更することは可能ですか?はいの場合、どのように?

17
Gissipi_453

次のコードを使用すると、アクションバーを完全にスタイルできます。

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="actionBarStyle">@style/Widget.AppTheme.ActionBar</item>
    <item name="actionBarTheme">@style/ThemeOverlay.AppTheme.ActionBar</item>
    <item name="actionBarPopupTheme">@style/ThemeOverlay.AppTheme.PopupMenu</item>
</style>

背景色または標高を変更するには、アクションバーstyleをオーバーライドします。

<style name="Widget.AppTheme.ActionBar" parent="Widget.AppCompat.ActionBar.Solid">
    <!-- action bar background - without Android prefix -->
    <item name="background">...</item>
    <!-- action bar elevation - without Android prefix -->
    <item name="elevation">4dp</item>
</style>

アクションバーthemeをオーバーライドして、アクションアイテム、リップル背景色、テキスト色など、アクションバー内のすべてのビューに特別な動作を定義します。

<style name="ThemeOverlay.AppTheme.ActionBar" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
    <!-- title text color -->
    <item name="Android:textColorPrimary">...</item>
    <!-- subtitle text color -->
    <item name="Android:textColorSecondary">?android:textColorPrimary</item>
    <!-- action menu item text color -->
    <item name="actionMenuTextColor">?android:textColorPrimary</item>
    <!-- action menu item icon color -->
    <item name="colorControlNormal">?android:textColorPrimary</item>
</style>

ポップアップテーマを変更することもできます。

<style name="ThemeOverlay.AppTheme.PopupMenu" parent="ThemeOverlay.AppCompat.Dark">
    <!-- popup menu background - NEVER "Android:background" !!! in themes -->
    <item name="Android:colorBackground">...</item>
    <!-- popup menu item text color -->
    <item name="Android:textColorPrimary">...</item>
</style>

一方、次のコードを使用すると、ウィンドウをスタイルできます

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- window background - NEVER "Android:background" in themes !!! -->
    <item name="Android:windowBackground">...</item>
    <item name="Android:textColorPrimary">...</item>
    <item name="Android:textColorSecondary">...</item>
</style>

アクションバーのテキストの色を直接変更することもできます。 ただし、注意してください!これはメニュー項目やアイコンのテキストの色や波紋の色には影響しません!これはおそらく長期的には望んでいないことです。

<style name="Widget.AppTheme.ActionBar" parent="Widget.AppCompat.ActionBar.Solid">
    <!-- title text color -->
    <item name="titleTextColor">?android:textColorPrimary</item>
    <!-- subtitle text color -->
    <item name="subtitleTextColor">?android:textColorSecondary</item>
</style>
48
Eugen Pechanec

はい、アクションバーのテキストの色を変更できます。これをアクティビティのonCreateに追加します。

 actionBar.setTitle(Html.fromHtml("<font color='#ffff00'>Your Title</font>"));  
2
onexf