V7 appcompat 21ライブラリを使用して、Lollipop以前のデバイスで新しいマテリアルスタイルを使用しています。私のstyles.xmlは次のようになります:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="Android:textColorPrimary">#ff0000</item>
<item name="Android:textColorPrimaryInverse">#ff0000</item>
</style>
アクションバーのテキストの色を変更しようとしています。しかし、textColorPrimaryまたはtextColorPrimaryInverseに何を指定しても、色は常に白です。 Theme.AppCompatを継承する場合、「textColorPrimary」をオーバーライドできます。Theme.AppCompat.Lightを継承する場合、「textColorPrimaryInverse」をオーバーライドできます。ただし、Light.DarkActionBarテーマを使用する場合は機能しません。
ColorPrimaryなどの属性を設定してアクションバーの背景色を変更するので、AppThemeを間違いなく使用しています。他のリソース修飾子スタイルファイルは使用していません。
Androidスタイルファイルを掘り下げましたが、どの属性をオーバーライドするかわからないようです。何か案は?これはappcompatのバグですか?
テーマのactionBarStyle
属性で変更できます。
<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@style/Widget.AppCompat.ActionBar.Solid">
<item name="titleTextStyle">@style/MyTitleTextStyle</item>
</style>
<style name="MyTitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="Android:textColor">CHANGE_COLOR_HERE</item>
</style>
これにより、ツールバータイトルの色が白色になります。
<Android.support.v7.widget.Toolbar
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/toolbar"
Android:layout_height="wrap_content"
Android:layout_width="match_parent"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
Android:minHeight="?attr/actionBarSize"
Android:background="?attr/colorPrimary" />
ThemeOverlay.AppCompat.Dark.ActionBar
とTheme.AppCompat.Light.DarkActionBar
の違いを理解するには this answer
このテーマで使用されるタイトルの色は白なので、app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
が明るい色を適用します。
「values-v11」、「values-v14」など、存在する場合は、すべてのvaluesフォルダーで変更を行ってください。
それ以外の場合は、上記で示したものと同じ「AppTheme」がアプリで使用されていることを確認してください。
完全なstyle.xmlとスタイルを参照するマニフェストコードを投稿してください。これにより、問題に関するより多くの洞察が得られます。
また、設定を試すことができます アプリ:テーマ そして app:popupTheme ツールバーの属性。
これをActivityのonCreateに追加してみてください。ほとんどすべてのAndroidバージョンで動作します。
Javaアクティビティの場合:
actionBar.setTitle(Html.fromHtml("<font color='#ffff00'>Your Title</font>"));
フラグメントの場合:
getSupportActionBar().setTitle(Html.fromHtml("<font color='#ffff00'>Your Title</font>"));
生成されたレイアウトxmlファイルを使用しましたが、Android:theme
属性がオーバーライドされていることに気付きませんでした。
確認しましたか? :)