Frage

, wie die Farbe der Textanzeige der Registerkarte ändern? Ich kann das Symbol mit Selektor-Tag ändern Sie die Beispiel verwiesen. aber auf die Textfarbe kann nicht. Wie?

War es hilfreich?

Lösung

Style es   in Ihrem benutzerdefinierten Thema ändern

<item name="android:tabWidgetStyle">@android:style/Widget.TabWidget</item> 

und

<style name="Widget.TabWidget">
        <item name="android:textAppearance">@style/TextAppearance.Widget.TabWidget</item>
        <item name="android:ellipsize">marquee</item>
        <item name="android:singleLine">true</item>
</style>  


<style name="TextAppearance.Widget.TabWidget">
    <item name="android:textSize">14sp</item>
    <item name="android:textStyle">normal</item>
    <item name="android:textColor">@android:color/tab_indicator_text</item>
</style>     

Andere Tipps

Hier ist eine neue Antwort, die ich von Fred Grott gefunden ( http: // knol.google.com/k/fred-grott/advance-tabs/ ) nach einer kleinen Web-Suche.
Auf diese Weise können Sie einen selector für Textfarbe so eingestellt, dass eine andere Farbe verwendet werden, wenn Tab ausgewählt ist oder nicht. Die sehr nützlich sein kann, wenn Sie eine andere Hintergrundfarbe für die Registerkarte verwenden, wenn sein ausgewählt. Natürlich kann man auch in einem einfachen Farb nur werfen und nicht ein Wähler.

final TextView tv = (TextView) tabWidget.getChildAt(i).findViewById(android.R.id.title);        
tv.setTextColor(this.getResources().getColorStateList(R.color.text_tab_indicator));

Wo R.color.text_tab_indicator ist eine Selektor XML-Datei in Ihrem res / ziehbar Ordnern.

Mit anderen Worten, ist der Indikator Text wirklich ein TextView, die über das View Objekt abrufbaren ist, die aus dem TabWidget Objekt zugegriffen werden kann.
Werfen Sie einen Blick auf Freds Beispiele für weitere Informationen und Kontext in Bezug auf die Variablendeklarationen sowie andere Tricks.

Danny C Antwort ist 100% correct.I nur etwas, um es hinzuzufügen wollte eine vollständige Antwort mit Ressource-Datei zu machen.

Die text_tab_indicator unter res / Farbdatei

<?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:textColor="@color/text_tab_selected"
    android:state_selected="true" />
<item android:textColor="@color/text_tab_unselected"
    android:state_selected="false" />
</selector>

Und das text_tab_unselected & text_tab_selected wird wie folgt aussehen unter Farben / Werte Ordner

<resources> 
<color name="text_tab_selected">#ffffff</color>
<color name="text_tab_unselected">#95ab45</color>

Danach schließlich Dannyy Antwort in Registerkarte Klassendatei

hinzufügen
final TextView tv = (TextView) tabWidget.getChildAt(i).findViewById(android.R.id.title);        
tv.setTextColor(this.getResources().getColorStateList(R.color.text_tab_indicator));

Die Änderung der Farbe kann auch ohne die Verwendung von Java angegeben werden. - was wohl besser ist,

Ich habe Änderungen an dem text_tab_indicator (Mitteilung Textfarbe zu ‚Farbe‘ geändert wurde):

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true" android:color="@color/text_tab_selected" />
    <item android:state_selected="false" android:color="@color/text_tab_unselected" />
</selector>

Stellen Sie den Stil des TabWidget zu Punkt zu einem bestimmten Stil in Ihrem XML-Code:

<TabWidget
    ...
    style="@style/TabText"
    />

Erklären Sie Ihren text_tab_indicator in / res / Farbe angeordnet, wie Sie Farbe im Stil

erwünscht
<style name="TabText">
    <item name="android:textColor">@color/tab_text_color</item>
</style>

Es funktionierte wie ein Zauber (für mich).

Cheers, Randall

Versuchen Sie ColorStateLists . Viel Glück.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top