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でテキストの色を変更するにはどうすればよいですか。

または、タブにsetCustomViewを使用する必要がありますか?ここでも、TextSizeとすべてを処理する必要があります

<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>

使ってみました

<item name="textColor">@color/black</item>

しかし、 textColorが有効な属性ではないというエラーが表示されます

ありがとうございました

4

1 に答える 1

15

You should not change text color from the code. Use color state list resource instead.

Define the color selector in resources. Define a xml file in res/color/ directory. The file will contain:

<?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>

And then set the text color in a style:

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

Edit:

You have to set the text color in the right place in the styles! Set the textColor in (android:)actionBarTabTextStyle. The theme has to contain:

<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>

Then set the text color in the tab text style:

<style name="MyTabTextStyle" parent="Widget.Sherlock.ActionBar.TabText" >
    <item name="android:textColor">@color/my_color_selector</item>
</style>
于 2012-11-08T11:59:53.397 に答える