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

时间:2015-02-27 10:23:07

标签: android android-actionbar

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

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

如果是这样,我究竟能达到这个目的。 谢谢。

3 个答案:

答案 0 :(得分:0)

在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"

我希望这个对你有帮助:)。

答案 1 :(得分:0)

背景:

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

TextColor:

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

我认为你可以同时使用answer @ user3515851和我的。

答案 2 :(得分:0)

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

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

所以你可以自定义像RelativeLayout这样的普通版面。

我希望这会有所帮助。