2012-04-27 59 views
14

如何在ActionBarSherlock中設置標題顏色?如何在ActionBarSherlock中設置標題顏色?

我應該使用哪種主題屬性?

+0

彩色文本(職稱)的交換parent =" TextAppearance.Sherlock.Widget.ActionBar.Title">;或酒吧的顏色? – Davek804 2012-04-27 20:09:35

+0

是,標題(文本)顏色... – 2012-04-30 08:13:40

+2

<項目名稱=「機器人:actionBarStyle」> @風格/ CustomActionBarStyle我使用的版本分7,以上的Andriod:前綴是不支持越來越分鐘SDK版本11所需錯誤。還有其他建議可以設置標題欄背景顏色或圖像。 – ramesh 2013-03-30 06:52:41

回答

35

ActionBarSherlock website

父主題

爲了使自定義操作杆實現的功能您的應用程序必須使用Theme.Sherlock,Theme.Sherlock.Light,或Theme.Sherlock。 Light.DarkActionBar或您的自定義主題必須使用上述之一作爲其父項。

鏡像的屬性

由於Android的主題化系統中的任何主題的自定義必須在兩個屬性聲明的限制。正常Android的前綴屬性應用主題到本機操作欄和前綴的屬性是自定義實現...

總之,這意味着你需要離開了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> 

注意

我沒有測試過這一點。此外,what have you tried?您應該在未來發布SO之前進行搜索。

+0

是的,我知道,但我沒有找到有關「titleTextStyle」屬性,謝謝! – 2012-04-30 08:06:00

+4

textColor引發錯誤?有任何想法嗎 ? – AndroidDev 2012-07-27 04:32:57

+4

這是沒有必要,你可以刪除它 – icastell 2012-11-30 22:25:57

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> 

,我所做的只是設置的主題活動中的最後一件事:

public static int THEME = R.style.Theme_Styled;

此行之前super.onCreate()方法

setTheme(主題)變爲;

這就是它。

+0

您是否需要父風格中的「@ style /」或者它是否也可以不工作? – Pepster 2013-09-28 17:25:01

+0

如何使用此解決方案更改背景? – TharakaNirmana 2013-10-07 05:33:18

43

您可以輕鬆地做到這一點與

getSupportActionBar().setTitle(Html.fromHtml("<font color='#ffffff'>App Name</font>")); 
+2

不錯的訣竅! TXN! – 2013-01-02 13:54:54

+1

不錯的一個。謝謝。 – 2013-06-04 19:48:34

+0

很好的答案。適用於所有級別的API,沒有任何問題。 – Santhosh 2013-07-13 13:04:55

1

,你可以從在style.xml或編程
1.從style.xml

2 2個地方做。或代碼

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

我認爲你正在試圖改變文字顏色,是在菜單,不是文本的顏色,是在標題ActionBarSherlock

當您使用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.Menu">