comment changer android spinner popupBackground
J'ai essayé de changer le android spinner fenêtre d'arrière-plan par la mise en au android:popupBackground, mais cela n'a eu aucun effet. Est-il possible que je peux le changer?
<Spinner
android:id="@+id/eventNameSpinner"
android:layout_width="160dp"
android:layout_height="30dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="6dp"
android:background="@drawable/btn_name"
android:paddingBottom="2dp"
android:paddingTop="2dp"
android:popupBackground="@drawable/bkg">
pas l'obtenir.
De quoi êtes-vous le définir?
Je veux dire par la mise en android:popupBackground="@drawable/bkg" pour le spinner n'a pas pour effet de modifier l'arrière-plan de la fenêtre contextuelle.
vous devriez poster une image à la place!
De quoi êtes-vous le définir?
Je veux dire par la mise en android:popupBackground="@drawable/bkg" pour le spinner n'a pas pour effet de modifier l'arrière-plan de la fenêtre contextuelle.
vous devriez poster une image à la place!
OriginalL'auteur Wenbo | 2012-01-19
Vous devez vous connecter pour publier un commentaire.
Je présume que vous essayez de modifier l ' "extérieur" fond d'écran d'un Spinner de pop, pas le fond de Spinner "pupup éléments". Aussi, je présume que par popup, tu veux dire un Spinner de la boîte de dialogue mode, où une boîte de dialogue flottante fenêtre s'affiche en haut de votre activité, par opposition à la nouvelle mode liste déroulante.
Stratégie
Pour une approche propre et durable qui se comporte bien à travers de multiples plates-formes Android et réduit la nécessité pour la redondance dans l'Application, je crois qu'il est essentiel de comprendre ce que le fonctionnaire docs ne nous dites pas. Alors suivez moi sur un court voyage.
La partie la plus délicate sur les Filateurs est qu'un Adaptateur est utilisé pour se connecter aux données. Alors qu'il est relativement facile d'identifier les crochets pour modifier l'apparence d'android.R.de mise en page.simple_spinner_item et de ses amis, ceux qui déterminent le style de la Spinner est actuellement l'élément affiché ainsi que chaque élément de menu contextuel. Mais c'est la Adaptateur qui est responsable de la création de la ListView et autres widgets qui cadre que ListView.
Cette complexité est probablement la raison pour laquelle Android a introduit un certain nombre d'attributs qui peuvent être spécifiées à la volée "pour" la Spinner bien qu'ils sont ensuite appliqués à l'Spnner enfants, comme android:popupBackground. Ce n'est pas nécessairement propre approche, plutôt qu'un ensemble limité de fonctions de confort. Concernant popupBackground, d'ailleurs, cela a été introduit dans l'API de niveau 1, mais les Filateurs de respect que dans spinnerMode=déroulant, qui a été introduit dans l'API de niveau 11. C'est la raison pour laquelle vous ne serez jamais être notifié si vous l'utilisez à tort.
Les anciennes Versions d'Android (comme 2.2)
ListView
Sachant que le Adaptateur crée un ListView, ce n'est pas une mauvaise idée de modifier la liste apparition dans l'un thème, donc il y a un seul endroit pour la modification de la conception et le style simple, comme suit:
AlertDialog
Malheureusement, il n'y a plus de travail à l'avance. Parce que android:invite peut être utilisé pour créer un titre pour le popup, le popup vraiment se compose de plus que la ListView.
Android utilise un AlertDialog
Dernières Versions d'Android (comme 4.2)
Maintenant que le AlertDialogs sont style, nous devons toujours tenir compte du fait que les versions plus récentes d'Android n'utilisez pas AlertDialogs pour Spinner boîtes de dialogue. Qui ne fait pas de mal, parce que, pour ceux-ci, l'AlertDialog style shouldd être conservés de toute façon. Cela signifie simplement que nous avons besoin pour le style de la nouvelle popup.
Pour ce faire, créer une version spécifique thème des fichiers XML pour tirer les autres styles dans votre thème personnalisé, et de fournir une version de style spécifique des fichiers XML.
Envie de l'essayer vous-même, à partir d'ici?
"...nous devons toujours tenir compte du fait que les versions plus récentes d'Android n'utilisez pas AlertDialogs pour Spinner boîtes de dialogue." Sur android 6.0 ici, et la modification de la
<item name="android:alertDialogTheme">
encore fait le tourOriginalL'auteur class stacker
android:popupBackground
est valide seulement lors de l'utilisation deandroid:spinnerMode = "dropdown"
, c'est probablement la raison pour laquelle il n'était pas un quelconque effet dans votre code. Vous devez dire que spinner le mode son en avec du XML.Liens
Je ne sais pas, mais vous pouvez toujours faire votre propre spinner. Jetez un oeil à adanware.blogspot.se/2012/03/...
OriginalL'auteur Entalpi