Comment puis-je faire un Spinner est “désactivé” état regardez désactivé?
Quand je désactive mon Spinner il ressemble presque exactement comme elle le faisait avant d'être handicapé, c'est à dire
Avant
Après
Il est désactivé et donc fonctionnellement tout va bien mais j'aimerais qu'il look désactivé. Cette question semble avoir été demandé autour de pièges (ici et ici par exemple), mais la plus proche de quelqu'un venu d'une réponse est cette, qui semble incomplète et je ne comprends pas, de toute façon?!?
Romain a dit il était fixé dans Froyo partir mais je suis en utilisant le Nid d'abeilles et comme vous pouvez le voir sur les captures d'écran, il ne semble pas fonctionner. Tout conseil serait apprécié.
Vous devez vous connecter pour publier un commentaire.
Ne sais pas si vous avez encore besoin de cela, mais il ya un moyen. J'ai été aux prises avec ce problème moi-même. J'ai fini par faire quelque chose comme ceci:
Ce que tout cela n'est de désactiver le compteur et l'élément sélectionné est affiché. Probablement l'élément sélectionné est un TextView et il doit apparaître comme un handicapé TextView.
J'utilise et ça marche. Mais pour des raisons inconnues de moi, il n'est pas aussi "grisé" que d'autres handicapés vues. C'est toujours désactivé si. L'essayer.
Un moyen astucieux de faire des toupies look handicapées est à la baisse de la transparence.
Si vous êtes en train de créer une carte avec une mise en page personnalisée (c'est à dire, l'extension de
R.layout.simple_spinner_item
), ajouter cet attribut XML:android:duplicateParentState="true"
spnr est mon
Spinner
objet qui se réfère à la vue XML fichier, parfindViewById(...)
.J'ai essayé le suivant, et il fonctionne comme prévu pour moi:
cela a fonctionné pour moi...
Pour la désactivation de la touche de navigation
et en lui permettant de retour
La
.getSelectedView()
ne fonctionne pas pour moi. J'ai donc trompé lesSpinner
à montrer être désactivé.Vous devrez définir vos propres couleurs pour le désactivé look.
Par Exemple:
De sorte à désactiver mon spinner:
Pour activer mon spinner:
Vous n'avez pas besoin de changer de style ou de modifier toute XML. Viens de le faire dans votre code, même à l'intérieur des méthodes d'événement, vous devriez être bien.
Points de vue peut être constituée de plusieurs palpable éléments. Vous devez désactiver tous, comme ceci:
Si elle est simple, puisqu'elle renvoie elle-même:
Vue#getTouchables()
Mine peut être un cas particulier en raison de l'ordre que je suis paramètre de ma carte ou en raison du fait que je suis en utilisant un deux personnalisées spinner classes:
LinearLayout
classe, etSpinner
classe.Les touches, j'ai trouvé pour l'obtention de la touche de navigation pour rechercher les personnes handicapées ont été:
setEnabled
fonction, etonDraw
fonction.À l'intérieur de ces deux personnalisées spinner classes, j'ai un spécial
setEnabled
fonction comme ceci, d'invalider l'ancien point de vue:J'ai aussi remplacer le
onDraw
fonction dans ma chaque spinner classe:J'ai eu un problème similaire, à l'exception de getChildView retourné null pour moi, si l'exception est la solution n'a pas fonctionné.
Je crois que cela a été causé parce que j'ai mis la carte dans le format XML, et ce ignoré le "cliquables" et "activé" attributs.
C'était mon XML:
La solution pour moi a été de supprimer le "activé" et "cliquables" attributs
et mettez le code suivant dans mon "onCreate"
Espère que cela aide quelqu'un!
Vous pouvez le faire sans typecasting également comme suit:
J'ai trouvé ceci pour être la meilleure solution pour la même question qui a déjà été répondu par @JSPDeveloper01:
https://stackoverflow.com/a/20401876/8041634
Depuis Android ne prend pas en gris de la toupie quand il a été désactivé, il suggère la création d'une méthode personnalisée qui utilise le
.setAlpha
de commande sur la fileuse, qui grise le texte. Brillant.