9
votes

Empêcher la liste déroulante Spinner pour montrer

J'utilise une fileuse dont l'adaptateur est peuplé de manière dynamique.

  • Lorsqu'il y a plusieurs éléments, le comportement de la spinner est le standard. En un clic, la liste déroulante est affichée, permettant à l'utilisateur de sélectionner un élément
  • Lorsqu'il n'y a qu'un seul élément, je souhaite empêcher la liste déroulante d'apparaître et de saisir l'événement de clic pour effectuer une action.

    Je ne trouve pas de solution pour empêcher le comportement par défaut (c'est-à-dire indiquant la liste déroulante pour un seul élément sur un clic). auriez vous des idées pour faire ça? Merci


0 commentaires

3 Réponses :


11
votes

hm ... Essayez d'utiliser SETClickable (FASTLE) ou SETENADENABLEED (FALSE) Si un seul élément de Spinner .

. essayez ceci xxx


2 commentaires

Cela résout définitivement la première partie du problème (prévenir la liste déroulante Spinner à afficher), mais comme je ne peux pas avoir de clic auditeur sur une spinner et que le fileur est désactivé ou non cliquable, je ne peux pas attraper l'événement de clic :(


Il y a un problème avec cela, dans la mesure où certaines versions ou fournisseurs montrent les articles sur Action_Down. Cela fonctionnera sur certains appareils mais pas sur d'autres, je pense.



7
votes

Pour empêcher Spinner de montrer une liste déroulante, je ne retourne plus que TRUE en Ontouch (...), comme ceci:

    spinner.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            return true;
        }
    });


0 commentaires

0
votes

à Kotlin, je l'ai fait de cette façon xxx


0 commentaires