71 votes

getHeight renvoie 0 pour tous les objets de l’interface utilisateur Android

Je suis en cours de création d’une interface utilisateur, et tout est statique défini dans le XML. Tout cela a des poids partout, et bien qu’il ait l’air correct, je voulais voir que les choses ont réellement la bonne hauteur et tout. Le problème est que peu importe où j’appelle .getHeight() pour ma mise en page de format, j’ai obtenu 0. J’ai essayé dans onCreate() et onStart(). Même chose. Cela se produit également pour tous les objets d’interface utilisateur. Une idée ?

XML :

90voto

Chris Points 10237

C’est 0 car dans onCreate et onStart, la vue n’a pas encore été dessinée. Vous pouvez contourner ce problème en écoutant quand la vue est réellement dessinée :

L’appel pour supprimer l’écouteur est là pour empêcher les appels répétés de votre gestionnaire personnalisé sur les modifications de mise en page... si vous voulez les obtenir, vous pouvez l’omettre.

42voto

DeeV Points 16141

En bref, les vues ne sont pas encore intégrées dans onCreate(), onStart() ou onResume(). Comme ils n’existent pas techniquement (en ce qui concerne le ViewGroup), leurs dimensions sont 0.

En long, vous pouvez aller ici pour une meilleure explication sur la façon de le gérer.

Comment récupérer les dimensions d’une vue ?

19voto

Aditya Rohilla Points 91

Utilisez cette fonction pour obtenir la hauteur ou la largeur de la vue

1voto

Abhilab Das Points 41

En obtenant votre bouton dans une vue, vous pouvez facilement récupérer sa hauteur, etc. Vous pouvez définir un `` comme :

J’espère que cela vous aidera.

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