私のコードは次のとおりであり、動作中(親テーマを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>
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>
タイトルテキストの色が変更されました。
このようにタイトルの色を変更しました
actionBar.setTitle(Html.fromHtml("<font color='#ff0000'>ActionBarTitle </font>"));
以下のコードを使用して、アクションバーのテキストとアクションバーの背景に異なる色を提供し、出力したいアクティビティに対してマニフェストで下のテーマを使用するだけです:)
<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);
私のために働いた最も簡単な方法は、テーマスタイルで次を追加することです:
<item name="Android:textColorPrimary">@color/orange_dark</item>
値フォルダの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>
カスタムツールバーがある場所でタイトルテキストを変更しようとしている場合は、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" />