Ändern holo spinner, text-Farbe
Habe ich ein Drehfeld in einem Holo-theme-dialog und versuche, ändern Sie die text-Farbe haben, denn es ist sehr schwer zu Lesen:
Ich habe mir bei android styles.xml sowie viele andere Antworten, und glaube, dass ich die Einstellung der benutzerdefinierten Stil richtig; aber es ist eben nicht immer abgeholt.
Dies ist ein Auszug aus dem dialog-layout-Datei, wo der spinner wohnt:
<Spinner
android:id="@+id/spn_Type"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:entries="@array/dose_type_options"
style="@style/DialogSpinner" />
Und dies sind die entsprechenden Einträge in styles.xml in der values-v14 Ordner:
<style name="DialogSpinner" parent="@android:style/Widget.Holo.Spinner">
<item name="android:spinnerItemStyle">@style/MySpinnerItem</item>
</style>
<style name="MySpinnerItem" parent="android:Widget.Holo.TextView.SpinnerItem">
<item name="android:textAppearance">@style/MyTextAppearanceSpinnerItem</item>
</style>
<style name="MyTextAppearanceSpinnerItem" parent="android:TextAppearance.Holo.Widget.TextView.SpinnerItem">
<item name="android:textColor">#FFF</item>
</style>
Der dialog selbst ist gezwungen, den Holo dunkles Thema mit:
<style name="FibroDialog" parent="@android:style/Theme.Holo.Dialog">
</style>
Kann jemand erkennen, warum die spinner text nicht weiß?
Ich habe mir bei anderen Lösungen, die darauf hindeuten, Veränderung der Farbe im code, aber diese app unterstützt 2.3.* nach oben, also für die nicht-holo-Versionen der schwarze text ist in Ordnung, daher versuchen, es zu tun, indem Sie Stile.
Dank
Aktualisiert mit Antwort von Woda unten
Den text Farbe der anfängliche Wert der spinner ist nun weiß, die geht ein langer Weg, um die Hervorhebung, dass es ein spinner besteht für den Anwender:
Aber die text Farbe der wählbaren items noch schwarz. Ich denke, es ist nicht eine riesige Sache, wenigstens die Existenz der spinner wurde bekräftigt, indem man den ursprünglichen text geändert auf weiß. Aber ich wäre daran interessiert zu wissen, warum die Elemente sind immer noch schwarz, und wie Sie zu ändern weiß.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie versucht zu akzeptieren, die SpinnerItemStyle zu Ihrem Thema? Also alle Spinner in Ihrer App haben würde, den gleichen Stil. Ich benutze es so und es funktioniert:
theme.xml:
style.xml:
Update:
Nehmen Sie einen tieferen Blick in die styles.xml brachte mir dieses:
So müssen Sie wahrscheinlich passen Sie das Widget.DropDownItem und akzeptieren Sie es, in Ihrem Thema.
Customizing meine Anwendung die folgenden beiden links haben mir sehr geholfen, zu verstehen, die Struktur der verschiedenen Ansichten. Diese beiden Dateien sind Bestandteil des android-source-code. Vielleicht hilft es dir auch.
Ich es behoben, durch den Aufruf
Hoffe, das hilft jemandem 😉
Können Sie den Zugriff auf die internen TextView im code ohne änderung des styles. Dies ist, wie ich behandelt die Aktivierung und Deaktivierung der Spinner
Den .getSelectedView() funktionierte nicht für mich. Also habe ich ausgetrickst, der Spinner "zeigen" deaktiviert.
Werden Sie brauchen, um eigene Farben zu definieren, für den "deaktiviert" - look.
Beispiel:
So deaktivieren Sie meine spinner:
Aktivieren mein spinner:
Die getChildAt(0) - Funktion ermöglicht Ihnen den Zugriff auf das erste Element im spinner, das ist, was Sie zeigen auf dem Bildschirm wie ein TextView.
Brauchen Sie nicht, um Stile ändern oder zu modifizieren XML. Nur tun Sie dies in Ihrem code, auch innerhalb von event-Methoden, sollten Sie in Ordnung sein.