アプリを開発していますが、change the textcolor of the actionbar title
。今、マニフェストでテーマを定義しました:
<application
Android:theme="@style/AppTheme">
</application>
styles.xmlで定義されています:
<style name="AppTheme" parent="Android:style/Theme.Holo.Light">
<item name="Android:textViewStyle">@style/AppTheme.TextView</item>
<item name="Android:actionBarStyle">@style/AppTheme.ActionBarStyle</item>
</style>
<style name="AppTheme.ActionBarStyle" parent="@Android:style/Widget.Holo.Light.ActionBar">
<item name="Android:titleTextStyle">@style/AppTheme.ActionBar.TitleTextStyle</item>
</style>
<style name="AppTheme.ActionBar.TitleTextStyle" parent="@Android:style/TextAppearance.Holo.Widget.ActionBar.Title">
<item name="Android:textColor">@color/themeapp</item>
</style>
<style name="AppTheme.TextView" parent="@Android:style/Widget.TextView">
<item name="Android:textColor">#FFFFFF</item>
</style>
これは機能しませんが、理由はわかりません。これは this answer 。nに従って動作するはずです。どちらのtextviewスタイルも動作していません。
私が間違っているのは何ですか?
更新:以下のGrace Fengの回答に合わせて変更
stackOverflowをさまよう私は この答え が見つかりましたが、最終的にはうまくいきました。
ここで報告します。
<style name="AppTheme" parent="Android:Theme.Holo.Light.DarkActionBar">
<item name="Android:actionBarStyle">@style/ActionBar</item>
...
</style>
<style name="ActionBar" parent="@Android:style/Widget.ActionBar">
<item name="Android:titleTextStyle">@style/ActionBar.Title</item>
<item name="Android:subtitleTextStyle">@style/ActionBar.Subtitle</item>
...
</style>
<style name="ActionBar.Title">
<item name="Android:textColor">@color/my_color</item>
</style>
<style name="ActionBar.Subtitle">
<item name="Android:textColor">@color/my_color</item>
</style>
SpannableString
を使用して、Actionbar title
のテキストの色を設定できます
SpannableString s = new SpannableString(title);
s.setSpan(new ForegroundColorSpan(Color.GREEN), 0, title.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
getSupportActionBar().setTitle(s);
<style name="AppTheme" parent="Android:style/Theme.Holo.Light">
<style name="AppTheme.TextView" parent="Android:Widget.TextView">
ここで記号「@」を見逃しましたか?
<style name="MyTheme" parent="@Android:style/Theme.Holo.Light">
また
<style name="AppTheme.TextView" parent="@Android:Widget.TextView">
ToolBar
としてActionBar
を使用していると仮定しています。すべての答えのうち、これが実装が最も簡単だと思います。すべてのAPIバージョンで動作します。
だからここにある:
アクションバーのタイトルは、textColorPrimary
をテキストの色として使用します。したがって、styles.xmlでそれを変更するには、textColorPrimary
の項目を使用して新しいスタイルを作成し、必要な色を設定します。
<style name="appBarTheme" parent="Theme.AppCompat.NoActionBar">
<item name="Android:textColorPrimary">@color/colorRed</item>
</style>
次に、そのスタイルをXMLのツールバーのテーマとして追加します。
<Android.support.v7.widget.Toolbar
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
app:layout_scrollFlags="enterAlways"
Android:id="@+id/toolbar"
Android:theme="@style/appBarTheme">
</Android.support.v7.widget.Toolbar>
そして今、あなたは必要なものを手に入れました。
次のようにapp:titleTextColor="@color/CUSTOM_COLOR"
を追加するだけです:
<Android.support.v7.widget.Toolbar
Android:id="@+id/toolbar"
Android:layout_width="match_parent"
Android:layout_height="?attr/actionBarSize"
Android:background="@color/yellow_light"
app:titleTextColor="@color/CUSTOM_COLOR"
app:popupTheme="@style/AppTheme.PopupOverlay"/>
同じ問題が発生したとき、私は使用しました:
<item name="titleTextStyle">@style/ActionBarTextStyle</item>
<item name="Android:titleTextStyle">@style/ActionBarTextStyle</item>
Activity
テーマを次のように変更します。
<style name="ThemeName" parent="Android:Theme.Holo.Light">
<item name="Android:actionMenuTextColor">@color/white</item>
</style>
style
の代わりにtheme
を使用したようです。 スタイルとテーマが異なります 。だから交換
<style name="AppTheme" parent="Android:style/Theme.Holo.Light">
と
<style name="AppTheme" parent="Android:Theme.Light">
私はそれがあなたの活動の問題だと思います。私はあなたと同じコードを使用しました、そしてそれは動作します。
まず、私はAppCompatActivityを基本アクティビティとして使用し、エラーを取得しました。そして、私はアクティビティを使用し、それが動作します。私の意見では、あなたのコードはTheme.Holoのテーマに使用されており、現在はTheme.AppCompatを使用しています。したがって、変更する場合は、 AndroidのAppCompat Light DarkActionBarテーマの背景とテキストの色を変更する を参照してください。私にとってはうまくいきます。幸運を祈ります。
この問題があっただけで、最終的にそれを理解しました。 style.xmlでは、ツールバーの背景色を指定しないでください。次に、各layout.xmlファイルで色を定義します。
<Android.support.v7.widget.Toolbar
Android:id="@+id/my_toolbar"
Android:layout_width="match_parent"
Android:layout_height="?attr/actionBarSize"
Android:background="#B678EE"
Android:elevation="4dp"
Android:theme="@style/ToolbarTheme"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
これにより、必要に応じてアクティビティに応じて異なるアクションバーの色を簡単に設定できる柔軟性が得られます。
解決策はわかりませんが、この方法でテキストの色を白と黒の間で変更することができました。
したがって、styles.xmlには次のものがあります。
<resources>
<style name="AppTheme" parent="Theme.AppCompat.DayNight.DarkActionBar">
<item name="colorPrimary">#673AB7</item>
<item name="colorPrimaryDark">#512DA8</item>
<item name="colorAccent">#FF4081</item>
</style>
</resources>
parent = "..."の中にあるものを暗いテーマまたは明るいテーマに変更すると、テキストの色がこれらのテーマに適合します。たとえば、今は暗いテーマがあり、テキストは白ですが、「Theme.AppCompat.Light」に変更すると、テキストの色が黒に変わります。
それが何らかの形で役立つことを願っています。