2 votes

Est-il possible de désactiver des attributs XML spécifiques à partir d'une vue personnalisée dans Android ?

Je suis en train de créer mon propre ListView personnalisé en étendant la fonction ListView lui-même. Ce ListView particulier ne devrait pas avoir de barres de défilement.

  1. Comment puis-je désactiver le XML android:scrollbars pour mon propre attribut ListView ?
  2. Je n'arrive pas à trouver un moyen de les désactiver par programme. Que me manque-t-il ?

La réponse de dzeikei désactivera les barres de défilement de manière programmatique et ignorera toute valeur provenant de android:scrollbars mais ce que je demande vraiment sur 1. est de savoir comment faire android:scrollbars un attribut non valide pour mon composant personnalisé.

2voto

dzeikei Points 696

Mise à jour de OK, comme Richardo l'a découvert, il semble que ma réponse originale soit l'inverse puisque la barre de défilement est affichée en interne :)

La méthode correcte consiste à appeler super.setHorizontalScrollBarEnabled(false) y super.setVerticalScrollBarEnabled(false) dans le constructeur et surchargez setHorizontalScrollBarEnabled() y setVerticalScrollBarEnabled() ne rien faire :D

Remplacer isHorizontalScrollBarEnabled() a isVerticalScrollBarEnabled() dans votre sous-classe pour retourner false .

vous pouvez également remplacer setHorizontalScrollBarEnabled() a setVerticalScrollBarEnabled() pour faire bonne mesure.

0voto

Pavandroid Points 1071

Essayez de garder @null pour Android:scrollbars. Je ne suis pas sûr. Mais, j'utilise généralement @null lorsque je veux supprimer quelque chose des attributs XML.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X