如何在 ActionBarSherlock
中设置标题颜色?
我应该使用哪些主题属性?
如何在 ActionBarSherlock
中设置标题颜色?
我应该使用哪些主题属性?
您可以使用以下方法轻松完成此操作:
getSupportActionBar().setTitle(Html.fromHtml("<font color='#ffffff'>App Name</font>"));
父主题
为了使定制的操作栏实现功能,您的应用程序必须使用Theme.Sherlock、Theme.Sherlock.Light或Theme.Sherlock.Light.DarkActionBar,或者您的自定义主题必须以上述其中之一作为其父级。
镜像属性
由于Android主题系统的限制,任何主题定制必须声明两个属性。普通的带有android前缀的属性将应用于本地操作栏,而未带前缀的属性适用于自定义实现...
简而言之,这意味着在样式化操作栏时需要省略android:
前缀。
定制标题颜色
<?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 发布问题之前,你应该先尝试搜索,看看是否有类似的解答。同时可以参考以下链接:"你尝试了什么?"
我已经通过以下方式修改了标题颜色:
在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>
我最后做的一件事是在activity中设置主题:
public static int THEME = R.style.Theme_Styled;
这行代码要写在super.onCreate()方法之前
setTheme(THEME);
就这样了。
当您使用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">
您可以从两个地方进行操作,要么在style.xml中,要么通过编程实现。
1.从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));
getSupportActionBar().setTitle(Html.fromHtml("<font color='#ffffff'>App Name</font>"));