【发布时间】:2015-02-27 10:23:07
【问题描述】:
有没有办法通过代码改变单个 ActionBar 菜单项的 Text 颜色或背景颜色?
为了更清楚一点,actionBar 中只有一项应该有不同的颜色,其余的应该是原始颜色。
如果是这样,我究竟如何才能做到这一点。 谢谢。
【问题讨论】:
-
感谢您的回复,但这些帖子并没有完全回答我的问题,因为我只需要更改 actionBar 的一项,其余的保持原来的颜色。
有没有办法通过代码改变单个 ActionBar 菜单项的 Text 颜色或背景颜色?
为了更清楚一点,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 这样的普通布局。
我希望这会有所帮助。
【讨论】: