web-dev-qa-db-ja.com

AppCompatを使用してアクションバーの背景色を変更する

この問題に関するいくつかの質問をウェブ上で見つけました。残念ながら、私がこれまでに試したすべては失敗しました。

タイトルに、アクションバーの背景色を変更する必要があると言われています。

プロジェクトの最小SDKは9、最大SDKは19です。

Res/valuesフォルダーにxmlファイルを作成しました:

red_actionbar.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light">
        <item name="actionBarStyle">@style/MyActionBar</item>
    </style>
    <style name="MyActionBar"
           parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
        <item name="background">@color/red</item>
    </style>
</resources>

res/valuesに保存されているcolors.xml

<resources>
    <color name="red">#FF0000</color>
</resources>

テーマを変更するマニフェストの一部

<application
    Android:allowBackup="true"
    Android:icon="@drawable/ic_launcher"
    Android:label="@string/app_name"
    Android:theme="@style/CustomActionBarTheme" >

しかし、何も変わりません。問題はどこにありますか?アプリケーションがコードを受け入れるのは、私がthsを変更した場合:

<style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light">

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

アプリのテーマが変更されるため、問題はスタイルにありますが、解決方法がわかりません。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light">
        <item name="Android:actionBarStyle" tools:ignore="NewApi">@style/MyActionBar</item>
        <item name="actionBarStyle">@style/MyActionBar</item>
    </style>
    <style name="MyActionBar"
           parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
        <item name="Android:background"  tools:ignore="NewApi">@color/red</item>
        <item name="background">@color/red</item>
    </style>
</resources>
45
Bombolo
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
    <item name="Android:background"  tools:ignore="NewApi">@color/red</item>
    <item name="background">@color/red</item>
</style>

<style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light">
    <item name="Android:actionBarStyle"   tools:ignore="NewApi">@style/MyActionBar</item>
    <item name="actionBarStyle">@style/MyActionBar</item>

</style>

両方が必要ですAndroid:backgroundおよびbackgroundアイテム。前者はActionBarをネイティブにサポートするAndroidの新しいバージョン用です。後者は古いAndroidバージョン用です。

編集

の代わりに <resources> つかいます

<resources xmlns:tools="http://schemas.Android.com/tools" xmlns:Android="http://schemas.Android.com/apk/res/Android">

SDK 21から

アクションバーの背景色を変更するには、これをActionBarThemeに追加します。2つの色が異なるか、動作しません(@Dreおよび@lagoman

<item name="colorPrimary">@color/my_awesome_red</item> 
<item name="colorPrimaryDark">@color/my_awesome_darker_red</item>
119
Blackbelt

これを試して:

<style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light">
    <item name="Android:actionBarStyle">@style/MyActionBar</item>
    <item name="actionBarStyle">@style/MyActionBar</item>

</style>

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

    <item name="Android:background">@color/red</item>
    <item name="background">@color/red</item>

</style>
19
Zohra Khan

これを試して。

<style name="AppBaseTheme" parent="Theme.AppCompat.Light">
    <item name="colorPrimary"> #6699FF </item>
</style>

あなたになら変えられる #6699FF選択に応じた色(または色リソースを使用)。

9
Mukul Aggarwal

使用してみてください

parent="Theme.AppCompat.Light"

の代わりに

parent="@style/Theme.AppCompat.Light"
1
heloisasim