web-dev-qa-db-ja.com

アクションバーのタイトルの色を変更する

私のコードは次のとおりであり、動作中(親テーマをTheme.SherlockまたはTheme.Sherlock.Lightに変更すると、テーマが変更されます)、タイトルの色は変更されません。

コードは here とほとんど同じです

コード:

<?xml version="1.0" encoding="utf-8"?>
<resources>

<style name="MyTheme" parent="@style/Theme.Sherlock">
 <item name="actionBarStyle">@style/MyTheme.ActionBarStyle</item>
 <item name="Android:actionBarStyle">@style/MyTheme.ActionBarStyle</item>
</style>

<style name="MyTheme.ActionBarStyle" parent="@style/Widget.Sherlock.ActionBar">
     <item name="Android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
</style>

<style name="MyTheme.ActionBar.TitleTextStyle" parent="@style/TextAppearance.Sherlock.Widget.ActionBar.Title" >
     <item name="Android:textColor">#FF0000</item>
</style>

</resources>
30
mt0s

Jake WhartonのActionBarSherlockサイトから:

ミラーリングされた属性

Androidのテーマシステムの制限により、テーマのカスタマイズは2つの属性で宣言する必要があります。通常のAndroidプレフィックス付き属性はテーマをネイティブアクションバーに適用し、プレフィックスなし属性はカスタム実装用です。

変更する必要がありましたMyTheme.ActionBarStyleに:

   <style name="MyTheme.ActionBarStyle" parent="@style/Widget.Sherlock.ActionBar">
     <item name="Android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
     <item name="titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
   </style>

タイトルテキストの色が変更されました。

38
mt0s

このようにタイトルの色を変更しました

actionBar.setTitle(Html.fromHtml("<font color='#ff0000'>ActionBarTitle </font>"));
53
MilapTank

以下のコードを使用して、アクションバーのテキストとアクションバーの背景に異なる色を提供し、出力したいアクティビティに対してマニフェストで下のテーマを使用するだけです:)

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

    <style name="MyActionBar" parent="@Android:style/Widget.Holo.Light.ActionBar">
        <item name="Android:titleTextStyle">@style/TitleBarTextColor</item>
        <item name="Android:background">YOUR_COLOR_CODE</item>
    </style>

    <style name="TitleBarTextColor" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
        <item name="Android:textColor">YOUR_COLOR_CODE</item>
    </style>

上記のすべての方法を試してみましたが、うまくいきませんでした。以下のコードで達成しました。

Spannable text = new SpannableString(actionBar.getTitle());
text.setSpan(new ForegroundColorSpan(Color.BLUE), 0, text.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
actionBar.setTitle(text);
7
Raja Jawahar

私のために働いた最も簡単な方法は、テーマスタイルで次を追加することです:

<item name="Android:textColorPrimary">@color/orange_dark</item>
6
user846316

値フォルダのstyle.xmlで、これによりアクションバーの色が変更されます。#666666をタイトルの背景色に選択したカラーコードに置き換え、#000000をタイトルのテキスト色に置き換えます。

<style name="MyTheme" parent="@Android:style/Theme.Holo.Light">
    <item name="Android:actionBarStyle">@style/NewActionBar</item>
</style>

<style name="NewActionBar" parent="@Android:style/Widget.Holo.Light.ActionBar">
<item name="Android:titleTextStyle">@style/TitleBarTextColor</item>
<item name="Android:background">#666666</item>
</style>
<style name="TitleBarTextColor" parent="@style/TextAppearance.Sherlock.Widget.ActionBar.Menu">
    <item name="Android:textColor">#000000</item>
</style>

マニフェストファイルの編集を忘れないでください-> Android:theme = "@ style/NewTheme"

    <application
    Android:allowBackup="true"
    Android:icon="@drawable/ic_launcher"
    Android:label="@string/app_name"
    Android:theme="@style/NewTheme" >
    <activity
        Android:name="com.nearby.welcome.Splash"
        Android:label="@string/app_name" >
        <intent-filter>
            <action Android:name="Android.intent.action.MAIN" />

            <category Android:name="Android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

</application>
2
Jesmeen Hoque

カスタムツールバーがある場所でタイトルテキストを変更しようとしている場合は、app:titleTextColor以下のようにツールバーに:

 <Android.support.v7.widget.Toolbar
        Android:id="@+id/my_toolbar"
        Android:layout_width="match_parent"
        Android:layout_height="?attr/actionBarSize"
        Android:background="?attr/colorPrimary"
        Android:elevation="4dp"
        Android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
        app:titleTextColor="@color/colorWhite" />
1
Joe