Android getActionBar()。字幕更改颜色

Android getActionBar()。字幕更改颜色,android,android-actionbar,Android,Android Actionbar,使用此代码: getActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#CFCAF3"))); 我可以改变动作栏的颜色 但是我想改变字幕的颜色 getActionBar().setSubtitle("Tarih 2 Mayıs 2015"); 但它是灰色的。见下图 但在这个应用程序中,它是黑色的 如何更改字幕的颜色?您需要以自己的风格定义字幕。假设您使用的是AppCompat主题样式 <style

使用此代码:

getActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#CFCAF3")));
我可以改变动作栏的颜色

但是我想改变字幕的颜色

getActionBar().setSubtitle("Tarih 2 Mayıs 2015");
但它是灰色的。见下图

但在这个应用程序中,它是黑色的


如何更改字幕的颜色?

您需要以自己的风格定义字幕。假设您使用的是AppCompat主题样式

<style name="MyTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
    <item name="actionBarStyle">@style/MyTheme.ActionBarStyle</item>
</style>

<style name="MyTheme.ActionBarStyle" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
    <item name="subtitleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
</style>

<style name="MyTheme.ActionBar.TitleTextStyle" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
    <item name="textColor">@color/red</item>
</style>

在清单中,为活动创建主题。下面给出了一个例子

<activity
  android:name="com.x.y.Mainact"
  android:theme="@style/ActionBarTest"
在你的主题活动中

<style name="ActionBarTest" parent="android:Theme.Holo.Light">
    <item name="android:actionOverflowButtonStyle">@style/OverFlow</item>
    <item name="android:textColorSecondary">@color/black</item>
 </style>
项目

textColorSecondary


这就是我们的窍门。

假设您使用的是AppCompat主题样式,那么您需要在actionBarStyle和subtitleTextStyle之前去掉这些android前缀;谢谢,忘记删除了。在Manifest:和Styles.xml@color/deneme上,使用这段代码,它成功了。谢谢这将更改整个活动的次要文本颜色,而不仅仅是操作栏。