Android: ne peut pas style diviseur de spinner
Je suis en train de créer un thème pour ma première application Android, et c'est à cause de moi autour de la courbure. J'ai enfin réussi à comprendre comment le style des éléments dans une liste déroulante, mais maintenant je ne peux pas changer la couleur de la ligne de séparation entre les éléments de la liste. J'ai cherché sur des questions similaires sur stackoverflow, et essayé des dizaines de combinaisons, mais rien ne semble fonctionner.
Voici mon styles.xml fichier (en abrégé, pour plus de clarté):
<?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>
Peu importe ce que je fais, je viens d'obtenir un 1dp gris clair séparateur entre les éléments (qui peuvent à peine être vu avec ma lumière de couleur de l'élément de liste arrière-plan) - ni la hauteur, ni la couleur de la ligne de séparation est jamais touché (j'ai aussi essayé un réglage à un drawable, également sans effet). Ce que je fais mal?
source d'informationauteur Russ
Vous devez vous connecter pour publier un commentaire.
J'ai une question très simple Activité avec le Spinner et il travaille pour la suite. La seule différence que je vois est que vous avez un
<item name="android:height">3dp</item>
et je n'ai pas ça du tout.et dans mon Activité, j'ai:
et puis pour la page principale, j'ai le code XML suivant:
Voici la capture d'écran
Si vous ne pouvez pas l'obtenir pour travailler à partir de là, je peux pousser jusqu'à la totalité de la chose à un dépôt github pour vous.
Vous pouvez ajouter une ligne horizontale à la liste déroulante mise en page que vous utilisez, ce qui aurait pour effet de créer une ligne de séparation.
MODIFIER
Quelques recherche trouvé ceci:
DONC Réponse
Qui dit en substance ce que vous montrez que vous essayez de faire ci-dessus devrait fonctionner... bien qu'elle mentionne paramètre de style dans votre activité thème et vous ne mentionnez pas le faire.
Vous pouvez le faire dans votre layout.xml
XML STYLES AJOUTER
Ajouter à votre Activité Thème
FICHIER JAVA
Laissez-moi savoir si elle avait été utile pour vous! Have a nice day!
Le style de la méthode dans la accepté de répondre fonctionne bien jusqu'à ce que vous avez besoin de deux toupies avec les différents diviseur de couleurs.
Voici ce que j'ai trouvé fonctionne comme une alternative:
a) fixer le popupBackgroundColor attribut sur la touche de navigation pour mettre de la couleur que vous voulez pour le diviseur. Ce sera la couleur de l'ensemble de la liste de l'élément de fond (y compris l'espace nous pensons que le diviseur).
b) Définir les fileuses cartes dropDownViewResource être un CheckedTextView avec ses attributs en arrière-plan une couleur (ou un sélecteur si vous souhaitez que les éléments sélectionnés ont une couleur différente). Cela permettra de remplacer la couleur que nous avons définies dans l'étape a de tout, mais le diviseur. effectivement nous donner le résultat souhaité.
De sorte que vous aurez:
drawable/spinner_dropdown_background_selector:
layout/drop_down_item.xml:
Votre spinner définition:
Et enfin votre adaptateur tableau de définition:
Veuillez noter que le réglage de la popupBackgroundColor n'a aucun effet si le compteur est dans mode de dialogue.