Android: Nicht-Stil-spinner-Teiler
Ich versuche zu schaffen, ein Thema für meine erste Android-app, und es treibt mich um die Kurve. Ich habe es endlich geschafft herauszufinden, wie Sie Stil-Elemente in einer dropdown-Liste, aber jetzt kann ich nicht ändern Sie die Farbe der Trennlinie zwischen der Listen-Elemente. Ich habe gesucht ähnliche Fragen auf stackoverflow, und habe versucht, Dutzende von Kombinationen, aber nichts scheint zu funktionieren.
Hier ist meine styles.xml Datei (kurz für Klarheit):
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyTheme" parent="android:Theme.Light">
<item name="android:spinnerStyle">@style/spinnerStyle</item>
<item name="android:spinnerDropDownItemStyle">@style/spinnerDropDownItemStyle</item>
<item name="android:dropDownListViewStyle">@style/spinnerListViewStyle</item>
</style>
<style name="spinnerStyle" parent="@android:style/Widget.Spinner">
<item name="android:background">@drawable/my_theme_spinner</item>
</style>
<style name="spinnerDropDownItemStyle" parent="@android:style/Widget.DropDownItem.Spinner">
<item name="android:background">@drawable/my_theme_spinner_item</item>
<item name="android:paddingLeft">5dp</item>
<item name="android:gravity">center_vertical</item>
</style>
<style name="spinnerListViewStyle" parent="@android:style/Widget.ListView.DropDown">
<item name="android:height">3dp</item>
<item name="android:dividerHeight">3dp</item>
<item name="android:divider">@color/divider</item>
</style>
</resources>
Egal was ich mache, ich bekomme nur eine 1dp Licht Grau Trennlinie zwischen den Elementen (die kaum gesehen werden können, mit meiner hellen list-Element-hintergrund) - weder die grösse noch die Farbe der Trennlinie ist immer betroffen (ich habe auch versucht die Einstellung ein drawable, auch keine Wirkung). Was mache ich falsch?
InformationsquelleAutor der Frage Russ | 2012-06-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich eine sehr einfache Tätigkeit, mit der Spinner und es funktioniert für die folgenden. Der einzige Unterschied, den ich sehe, ist, dass Sie eine
<item name="android:height">3dp</item>
und ich glaube nicht, dass überhaupt.und in meiner Tätigkeit habe ich:
und dann für die main-layout, ich habe Folgendes XML:
Hier ist der screenshot
Wenn Sie nicht bekommen kann es von dort zu arbeiten, ich kann push-up, die gesamte Sache zu einem github-repo für Sie.
InformationsquelleAutor der Antwort christophercotton
Könnte man hinzufügen, eine horizontale Linie, um die dropdown-layout, das Sie verwenden, die würde effektiv ein Teiler.
BEARBEITEN
Einige weitere Suche gefunden:
SO Beantworten
Die im Grunde sagt, was Sie zeigen, Sie versuchen zu tun oben sollte funktionieren... obwohl es erwähnt-Einstellung, die Stil in Ihr Aktivität Thema und Sie don ' T Erwähnung zu tun.
InformationsquelleAutor der Antwort Barak
Können Sie es tun in Ihrer layout.xml
XML-STILE HINZUFÜGEN
Hinzufügen, um Ihre Aktivität Thema
JAVA-DATEI
Lassen Sie mich wissen, wenn es hilfreich war für dich! Habt einen schönen Tag!
InformationsquelleAutor der Antwort Cristofer
Stil-Methode in der akzeptierten Antwort funktioniert gut, bis Sie zwei Spinner mit verschiedenen Teiler Farben.
Hier ist was ich gefunden habe funktioniert als alternative:
a) die popupBackgroundColor-Attribut auf den spinner, um die von Ihnen gewünschte Farbe für die Trennlinie. Diese Farbe wird die gesamte Liste Element den hintergrund (einschließlich der Raum, den wir denken, der als Trennlinie).
b) Setzen Sie den Spinner Adapter dropDownViewResource ein CheckedTextView mit hintergrund-Attribut auf eine andere Farbe (oder einen Auswahlbereich, wenn Sie möchten, dass die ausgewählten Elemente werden in einer anderen Farbe). Dies überschreibt die Farbe, die wir in Schritt a für alles, aber die Teiler. effektiv geben Sie uns das gewünschte Ergebnis.
So haben Sie:
drawable/spinner_dropdown_background_selector:
layout/drop_down_item.xml:
Ihre spinner definition:
Und schließlich den array adapter definition:
Bitte beachten Sie, dass die Einstellung der popupBackgroundColor hat keine Wirkung, wenn der spinner ist in dialog-Modus.
InformationsquelleAutor der Antwort Oren