Dans Android comment obtenir la largeur de la Textview qui est fixé à " Wrap_Content
Je suis en train d'ajouter un texte à la textview pour laquelle j'ai mis de la largeur que Wrap_content. Je suis en train d'obtenir la largeur de cette textview. Mais son score de 0 dans tous les cas. Comment puis-je obtenir la largeur de la textview après la mise en place du texte.
le code est:
LinearLayout ll= new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
TextView tv = new TextView(this);
tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
ll.addView(tv);
tv.setText("Hello 1234567890-0987654321qwertyuio787888888888888888888888888888888888888888888888888");
System.out.println("The width is == "+tv.getWidth());//result is 0
this.setContentView(ll);
S'il vous plaît suggérer.
Merci à l'avance.
OriginalL'auteur Aada | 2013-04-15
Vous devez vous connecter pour publier un commentaire.
Vues avec la dynamique de la largeur/hauteur de l'obtenir de leur taille correcte qu'après un processus de mise en était fini (http://developer.android.com/reference/android/view/View.html#Layout).
Vous pouvez ajouter OnLayoutChangeListener à votre TextView et se taille:
Vous pouvez sous-classe TextView et remplacer onLayout(). Appel super.onLayout() et la sauver TextView de largeur. Cela devrait fonctionner pour toutes les API de niveau.
Classe exige de l'API de niveau 11 (courant min, 8): android.vue.Vue.OnLayoutChangeListener
OriginalL'auteur Const
Vous ne pouvez pas obtenir la largeur de Vue avec une taille dynamique avant la mise en page est complètement construit. Cela signifie qu'il ya aucun moyen que vous pouvez obtenir dans onCreate(). Un autre moyen serait de créer une classe qui hérite de TextView et remplace
onSizeChanged()
.OriginalL'auteur SimonSays
Quand êtes-vous appeler? Il a déjà été dessiné à l'écran?
Il semble que vous appelez
getWidth()
trop tôt.Vous pouvez également prendre un regardez cette question.
OriginalL'auteur Bryan Denny
cela fonctionne pour moi:
OriginalL'auteur shuo Han
vous pouvez essayer ceci:
OriginalL'auteur Robert Lee
bonjour utiliser cette méthode:
});
source: https://gist.github.com/omorandi/59e8b06a6e81d4b8364f
OriginalL'auteur سعید .م
Vous pouvez utiliser cette bibliothèque pour planifier la tâche d'effectuer le calcul de la largeur à la bonne heure après le point de vue a été complètement aspiré
https://github.com/Mohamed-Fadel/MainThreadScheduler
Exemple d'utilisation:
OriginalL'auteur Mohamed Fadel Buffon
Vous devez utiliser ce:
textView.getMeasuredWidth();
OriginalL'auteur Steven.Nguyen