2012-11-08 3 views
3
adapter.addTab(getSupportActionBar().newTab().setText("Tab-1"), 
       Tab1.class, null); 
adapter.addTab(getSupportActionBar().newTab().setText("Tab-2"), 
       Tab2.class, null); 
adapter.addTab(getSupportActionBar().newTab().setText("Tab-3"), 
       Tab3.class, null); 

현재 모든 탭의 TextColor는 흰색입니다. 내가 선택하지 않으면 회색이고 선택하면 흰색이되고 싶습니다. 그렇다면, 어떻게 문자 색상을 변경할 수 있습니까 onTabSelected 또는 onTabUnselected.ActionBarSherlock Tab 텍스트 색상을 변경하는 방법?

또는 탭에 대해 setCustomView를 사용해야합니까?

<style name="my_ActionBarTabStyle" parent="@style/Widget.Sherlock.ActionBar.TabView"> 
    <item name="background">@drawable/tab_indicator_ab_wicfy</item> 
    <item name="android:background">@drawable/tab_indicator_ab_wicfy</item> 
    <item name="android:textColor">@color/black</item> 
</style> 

의 다음 다시 TEXTSIZE 모든 요구 사항이 취해야 할주의 내가

을 사용하려고하지만 텍스트 색상

가 감사 유효한 속성 아니라고 나에게 오류를 제공

답변

15

코드에서 텍스트 색을 변경하면 안됩니다. 대신 color state list resource을 사용하십시오.

자원에서 색상 선택기를 정의하십시오. res/color/ 디렉토리에 xml 파일을 정의하십시오.

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- use when selected --> 
    <item android:state_selected="true" android:color="#fff" /> 

    <!-- otherwise use --> 
    <item android:color="#888" /> 
</selector> 

을 그리고 스타일의 텍스트 색상을 설정 : 파일이 포함됩니다

<item name="android:textColor">@color/my_color_selector</item> 

편집 :

당신은 텍스트의 색상을 설정해야 스타일에 맞는 장소! textColor를 (android:)actionBarTabTextStyle에 설정하십시오. 질문에 하나 같이

<style name="MyTabTextStyle" parent="Widget.Sherlock.ActionBar.TabText" > 
    <item name="android:textColor">@color/my_color_selector</item> 
</style> 
+0

:

<style name="MyTheme" parent="Theme.Sherlock.Light.DarkActionBar"> ... <!-- define text style for tabs --> <item name="actionBarTabTextStyle">@style/MyTabTextStyle</item> <item name="android:actionBarTabTextStyle">@style/MyTabTextStyle</item> ... </style> 

그런 다음 탭 텍스트 스타일의 텍스트 색상을 설정합니다 주제는 포함한다? –

+0

어쨌든 작동하지 않습니다 : ( –

+0

'res/color'에 추가하고'@color/tab_text_indicator'로 참조해야합니다. 색이 예상 될 때 드로어 블을 사용할 수 없습니다 .. – Tomik

관련 문제