Je sais que faire des calculs de taille de vue pour le placement est froncé. Les gestionnaires de disposition Android doivent placer correctement toutes les vues. Cependant, il existe des cas légitimes où une sorte de calculs doit être effectuée pour fournir des indications (par exemple, le nombre de colonnes dans un GridView ou le dimensionnement d'une vue de texte pour autoriser un nombre minimum de caractères affichés dans une ligne). Pour ces cas, je voudrais obtenir la vue pertinente largeur/hauteur info ou largeur de la police/hauteur/etc. Cependant, les appels getWidth()/getHeigth()/etc ne renvoient jamais une valeur valide à moins que la vue n'ait été affichée mais qu'elle soit en retard. C'est une situation de catch-22. Je me demande s'il y a un moyen que je n'ai pas trouvé (l'api android est grand pour comprendre tout dans mon esprit) qui rend ce que j'ai décrit ci-dessus possible.Afficher la largeur/hauteur ou la largeur de la police/hauteur/autres tailles avant le premier affichage
4
A
Répondre
7
La taille de la vue ne peut pas être calculée jusqu'à ce que son parent soit calculé, mais vous pouvez toujours forcer ce calcul en appelant measure(allowedWidth, allowedHeight)
dessus. Alors getMeasuredWidth()
fonctionnera.
voir http://developer.android.com/reference/android/view/View.html#measure(int, int)
5
Ouais j'ai testé la suggestion et ça marche!
Exemple de code.
Display display = getWindowManager().getDefaultDisplay();
View s = findViewById(R.id.Screen); // Screen is a container layout
s.measure(display.getWidth(), display.getHeight());
View c = findViewById(R.id.Cell0);
Log.i(TAG, "cell width = " + String.valueOf(c.getMeasuredWidth())
+ " height = " + String.valueOf(c.getMeasuredHeight()));
Ce que je ne comprends pas, c'est comment j'ai raté ça! :) Je savais tout sur le processus de mesure, mais je suis resté coincé dans son utilisation dans les vues personnalisées ...
Questions connexes
- 1. Obtenir la hauteur de l'écran avant le premier affichage?
- 2. Affichage avant la barre d'onglets Affichage
- 3. Afficher la largeur de la fenêtre et l'appliquer à une largeur de tag ou de classe
- 4. premier affichage de la valeur DROPDOWNLIST « choisir »
- 5. afficher le contenu largeur et la hauteur
- 6. Jquery Afficher/Masquer déplace l'élément vers la droite avant de le montrer ou de le masquer
- 7. Premier type & avant ou après
- 8. Afficher la vue avant d'afficher le UITabBar
- 9. chaîne tronquée de la première lettre avant le premier point?
- 10. Affichage de GlassPane avant l'entrée de la boucle
- 11. Comment afficher la vue de connexion avant le contrôleur Tabbar?
- 12. Affichage de la largeur et de la hauteur de l'écran Python tkinter
- 13. donné le contenu html, trouver la hauteur de la page pour la largeur donnée, avant de déchirer la page
- 14. strstr pour afficher la chaîne avant occurance
- 15. Est-ce que cette largeur est la première ou la profondeur en premier?
- 16. Comment afficher le texte en fonction de la largeur td
- 17. Imprimer la liste dans l'ordre inverse ou mettre de nouveaux éléments avant le premier
- 18. en supprimant le premier onglet avant que la fenêtre affiche
- 19. comment ne pas hériter? ou comment réinitialiser la largeur héritée à la valeur avant? (css)
- 20. Windows Forms - Afficher la boîte de dialogue avant le formulaire
- 21. Définition de la largeur UIWebView pour afficher tout le contenu
- 22. Comment organiser le bouton de tailles égales de la largeur du téléphone?
- 23. Affichage de la page de confirmation avant la soumission d'un formulaire
- 24. Mon jQuery prend la largeur et la hauteur de l'élément avant de charger le contenu
- 25. IE Affichage Problème pour la largeur de <td>
- 26. Réglage de la position de NSWindow avant Affichage
- 27. Affichage de la légende après le déplacement de la carte
- 28. Afficher la même icône en 2 tailles différentes sur C#
- 29. comment afficher la dernière entrée le premier en php?
- 30. affichage cacao grille mac osx d'images de tailles différentes
D'où vient le 'display'? –