Comment limiter la hauteur de la vue déroulante Spinner dans Android
Veuillez suggérer une approche que j'utilise pour créer .
Requête : je suis la création de 2-Spinner de vue , où j'ai du ajouter de Pays/liste de Villes , de Sorte que si je suis la sélection de l'inde puis je reçois 50 éléments à l'intérieur de la liste déroulante vue , le problème c'est que c'est l'ensemble de la page en hauteur .
Ce que je veux : je souhaite créer une liste déroulante afficher , où l'utilisateur peut voir seulement 10 points dans l'
déroulant afficher , d'autres éléments seront présentées à chaque utilisateur de défilement la liste déroulante afficher .
source d'informationauteur Tushar Pandey
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser la Réflexion.
Vous pouvez également affecter déroulant afficher la position et la taille en sous-classement
Spinner
et surchargeant sesgetWindowVisibleDisplayFrame(Rect outRect)
qui est utilisé parandroid.widget.PopupWindow
pour les calculs. Juste mettreoutRect
à la limite de la zone où déroulant affichage peuvent être affichées.Cette approche est bien sûr pas adapté pour tous les scénarios étant donné que parfois, vous voulez placer déroulant vue afin de ne pas masquer un autre point de vue ou par quelque autre condition connue seulement "en dehors de l'instance".
Dans mon cas, j'avais besoin d'appliquer
FLAG_LAYOUT_NO_LIMITS
drapeau à ma fenêtre activité qui a causé laoutRect
être énorme et fait donc partie de la liste déroulante, le point de vue obtenu parfois caché derrière la barre de navigation. Afin de restaurer le comportement d'origine, j'ai utilisé la substitution suivante:android:popupBackground="#00000000"
pour le compteurandroid:dropDownVerticalOffset="60dp"