以编程方式更改单个ActionBar菜单项的文本颜色/背景



有没有办法通过代码更改单个ActionBar菜单项的文本颜色或背景颜色?

为了更清楚,actionBar中只有一个项目应该有不同的颜色,其余项目应该是原始颜色。

如果是这样的话,我该如何做到这一点。非常感谢。

在styles.xml 中添加此行

<style name="AppTheme" parent="AppBaseTheme">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:background">#de5188</item>
    <item name="android:titleTextStyle">@style/MyActionBarTitleText</item>
    <item name="android:subtitleTextStyle">@style/MyActionBarSubTitleText</item>
</style>
<style name="MyActionBarTitleText" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
    <item name="android:textColor">#ffffff</item>
    <item name="android:textStyle">bold</item>
</style>
<style name="MyActionBarSubTitleText" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
    <item name="android:textColor">#ffffff</item>
    <item name="android:textSize">10dp</item>
</style>

并将你的美甲改为

 android:theme="@style/AppTheme"

我希望这个能帮助你:)

背景:

 ActionBar bar = getActionBar();
bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#0000ff"))); //<-- Your Color

文本颜色:

getActionBar()/* or getSupportActionBar() */.setTitle(Html.fromHtml("<font color="red">" + getString(R.string.app_name) + "</font>"));

我想你可以同时使用答案@user3515851和我的答案。

如果在某些情况下使用自定义布局作为操作栏,效果会更好。

actionBar.showCustomView(true)// or similar to this.
actionBar.setCustomView(view)// you can inflate the view as you wish

因此,您可以像RelativeLayout一样进行常规布局的自定义。

我希望这能有所帮助。

最新更新