web-dev-qa-db-ja.com

Android-アクションバーのタイトルのテキストの色を変更

アプリを開発していますが、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の回答に合わせて変更

17
jack_the_beast

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>
1
jack_the_beast

SpannableStringを使用して、Actionbar titleのテキストの色を設定できます

SpannableString s = new SpannableString(title);
s.setSpan(new ForegroundColorSpan(Color.GREEN), 0, title.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
getSupportActionBar().setTitle(s);
14
Parag Chauhan
<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">
9
panda

ActionBarhere をカスタマイズする方法を見つけることができます。代わりにToolBarTheme.AppCompatを使用することをお勧めします-

4

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>

そして今、あなたは必要なものを手に入れました。

2
Akash Rudra

次のように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"/>
2
Maximoapps Inc

同じ問題が発生したとき、私は使用しました:

<item name="titleTextStyle">@style/ActionBarTextStyle</item>

<item name="Android:titleTextStyle">@style/ActionBarTextStyle</item>
1
IDmikael

Activityテーマを次のように変更します。

<style name="ThemeName" parent="Android:Theme.Holo.Light">

   <item name="Android:actionMenuTextColor">@color/white</item>

</style>
0
coder

styleの代わりにthemeを使用したようです。 スタイルとテーマが異なります 。だから交換

<style name="AppTheme" parent="Android:style/Theme.Holo.Light">

<style name="AppTheme" parent="Android:Theme.Light">
0
frogatto

私はそれがあなたの活動の問題だと思います。私はあなたと同じコードを使用しました、そしてそれは動作します。 enter image description here

まず、私はAppCompatActivityを基本アクティビティとして使用し、エラーを取得しました。そして、私はアクティビティを使用し、それが動作します。私の意見では、あなたのコードはTheme.Holoのテーマに使用されており、現在はTheme.AppCompatを使用しています。したがって、変更する場合は、 AndroidのAppCompat Light DarkActionBarテーマの背景とテキストの色を変更する を参照してください。私にとってはうまくいきます。幸運を祈ります。

0
sunday

この問題があっただけで、最終的にそれを理解しました。 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"/>

これにより、必要に応じてアクティビティに応じて異なるアクションバーの色を簡単に設定できる柔軟性が得られます。

0
SentientFlesh

解決策はわかりませんが、この方法でテキストの色を白と黒の間で変更することができました。

したがって、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」に変更すると、テキストの色が黒に変わります。

それが何らかの形で役立つことを願っています。

0
Max