14

如何设置标题颜色ActionBarSherlock

我应该使用哪些主题属性?

4

5 回答 5

43

你可以很容易地做到这一点

getSupportActionBar().setTitle(Html.fromHtml("<font color='#ffffff'>App Name</font>"));
于 2012-12-25T09:52:30.843 回答
35

来自ActionBarSherlock 网站

家长主题

为了使自定义操作栏实现起作用,您的应用程序必须使用 Theme.Sherlock、Theme.Sherlock.Light 或 Theme.Sherlock.Light.DarkActionBar,或者您的自定义主题必须使用上述其中之一作为其父级。

镜像属性

由于 Android 主题系统的限制,任何主题自定义都必须在两个属性中声明。普通的 android-prefixed 属性将主题应用于本机操作栏,unprefixed 属性用于自定义实现......

简而言之,这意味着您android:在为ActionBar.

主题化标题颜色

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="YOURTHEME" parent="Theme.Sherlock.Light">
<item name="android:actionBarStyle">@style/YOURTHEME.ActionBarStyle</item>
<item name="actionBarStyle">@style/YOURTHEME.ActionBarStyle</item>
</style>

<style name="YOURTHEME.ActionBarStyle" parent="Widget.Sherlock.Light.ActionBar">
<item name="android:titleTextStyle">@style/YOURTHEME.ActionBar.TitleTextStyle</item>
<item name="titleTextStyle">@style/YOURTHEME.ActionBar.TitleTextStyle</item>
</style>

<style name="YOURTHEME.ActionBar.TitleTextStyle" parent="TextAppearance.Sherlock.Widget.ActionBar.Title">
<item name="android:textColor">@color/YOUR_COLOR</item>
<item name="textColor">@color/YOUR_COLOR</item>
</style>
</resources>

笔记

我没有测试过这个。另外,你试过什么?您应该在将来在SO上发布之前进行搜索。

于 2012-04-27T20:22:36.183 回答
24

我已经改变了这种方式的标题颜色:

在 Styles.xml 文件中,我添加了这些样式

<style name="Theme.Styled" parent="@style/Theme.Sherlock.Light">
    <item name="actionBarStyle">@style/CustomActionBarStyle</item>
    <item name="android:actionBarStyle">@style/CustomActionBarStyle</item>
</style>

<style name="CustomActionBarStyle" parent="@style/Widget.Sherlock.ActionBar">
    <item name="titleTextStyle">@style/CustomTitleColorBar</item>
    <item name="android:titleTextStyle">@style/CustomTitleColorBar</item>
</style>

<!-- Style for the color title bar -->
<style name="CustomTitleColorBar" parent="@style/TextAppearance.Sherlock.Widget.ActionBar.Title">
    <item name="android:textColor">@android:color/white</item>
</style>

我做的最后一件事是在活动中设置主题:

公共静态 int THEME = R.style.Theme_Styled;

这一行在 super.onCreate() 方法之前

设置主题(主题);

就是这个。

于 2012-08-28T16:49:38.940 回答
1

您可以从 style.xml 中的 2 个地方或以编程方式
1.From style.xml

2.或者在代码中

int titleId = Resources.getSystem().getIdentifier("action_bar_title", "id", "android");  
TextView yourTextView = (TextView)findViewById(titleId);
yourTextView.setTextColor(getResources().getColor(R.color.myColor));

或者使用actionbar你也可以实现这个

getSupportActionBar().setTitle(Html.fromHtml("<font color='#ffffff'>App Name</font>"));
于 2014-03-12T11:38:21.880 回答
1

我认为您正在尝试更改Menu上的文本颜色,而不是ActionBarSherlock中Title中的文本颜色。

当您用来getSupportActionBar().SetTitle("My Title")设置此文本的样式时,您应该使用代码@Archie.bpgc。他的回答是正确的,但我相信你需要以下代码:

<style name="MyTheme.TitleTextStyle" parent="TextAppearance.Sherlock.Widget.ActionBar.Menu">
    <item name="android:textColor">@color/white</item>
    <item name="android:textSize">24sp</item>
    <item name="android:gravity">center</item>
</style>

看到你只是parent =" TextAppearance.Sherlock.Widget.ActionBar.Title">交换parent = "TextAppearance.Sherlock.Widget.ActionBar.Menu">

于 2015-10-01T17:54:19.333 回答