Holo Spinner Textfarbe ändern

8

Ich habe einen Spinner in einem Holo-Design-Dialog und versuche, die Textfarbe zu ändern, weil sie sehr schwer zu lesen ist:

Ich habe android styles.xml sowie viele andere Antworten angeschaut und glaube, dass ich den benutzerdefinierten Stil richtig einstelle; aber es wird einfach nicht abgeholt.

Dies ist ein Auszug aus der Dialoglayoutdatei, in der der Spinner lebt:

%Vor%

Und das sind die relevanten Einträge in styles.xml im Ordner values-v14:

%Vor%

Der Dialog selbst wird durch Verwendung von:

zum dunklen Holo-Thema gezwungen %Vor%

Kann jemand herausfinden, warum der Spinner-Text nicht weiß ist?

Ich habe mir andere Lösungen angeschaut, die vorschlagen, die Farbe im Code zu ändern, aber diese App unterstützt 2.3. * aufwärts, so dass für diese Nicht-Holo-Versionen schwarzer Text in Ordnung ist, also nach Stilen.

>

Danke

Aktualisiert mit der Antwort von Woda unten

Die Textfarbe des Anfangswerts des Zahlenauswahlfelds ist jetzt weiß, was deutlich macht, dass dort ein Drehfeld für den Benutzer ist:

Aber die Textfarbe der auswählbaren Elemente ist immer noch schwarz. Ich denke, es ist keine große Sache, zumindest wurde die Existenz des Spinner bestätigt, indem der ursprüngliche Text in Weiß geändert wurde. Aber ich würde gerne wissen, warum die Artikel immer noch schwarz sind und wie man sie in Weiß umwandelt.

    
DaveSav 19.05.2013, 19:28
quelle

3 Antworten

5

Haben Sie versucht, SpinnerItemStyle für Ihr Design zu akzeptieren? Also alle Spinner in Ihrer App würden den gleichen Stil haben. Ich benutze es so und es funktioniert:

theme.xml:

%Vor%

style.xml:

%Vor%

Aktualisierung: Ein genauerer Blick in die styles.xml brachte mir folgendes:

%Vor%

Sie müssen wahrscheinlich das Widget.DropDownItem anpassen und in Ihrem Design akzeptieren.

%Vor%

Für die Anpassung meiner Anwendung haben mir die folgenden zwei Links sehr geholfen, die Struktur der verschiedenen Ansichten zu verstehen. Diese beiden Dateien sind Teil des Android-Quellcodes. Vielleicht hilft es dir auch.

Woda 19.05.2013, 20:00
quelle
1

Ich habe es behoben, indem ich

aufgerufen habe %Vor%

Hoffe das hilft jemandem;)

    
Nobody Knows 05.05.2017 16:33
quelle
0

Sie können auf den internen TextView im Code zugreifen, ohne Stile zu ändern. So behandelte und aktivierte ich Spinners

Die .getSelectedView () funktionierte nicht für mich. Also habe ich den Spinner dazu gebracht zu "zeigen", dass er deaktiviert ist.

Sie müssen Ihre eigenen Farben für das "deaktivierte" Aussehen definieren.

Zum Beispiel:

%Vor%

Also um meinen Spinner zu deaktivieren:

%Vor%

Um meinen Spinner zu aktivieren:

%Vor%

Mit der getChildAt (0) -Funktion können Sie auf das erste Element im Drehfeld zugreifen, das Sie als TextView auf dem Bildschirm anzeigen.

Sie müssen keine Stile ändern oder XML ändern. Tun Sie dies einfach in Ihrem Code, selbst innerhalb von Event-Methoden sollten Sie in Ordnung sein.

    
Arlyn 04.06.2015 14:21
quelle