textview.getLineCount toujours 0 dans android
Je suis en train de redimensionner dynamiquement mon textview mais getlinecount() la méthode renvoie toujours me 0, même après settext() et invalidate(). Je suis en utilisant le code suivant:
if (convertView == null) {
convertView = lInflater.inflate(R.layout.listview, null);
holder = new ViewHolder();
holder.text2 = (TextView)convertView.findViewById(R.id.TextView02);
convertView.setTag(holder);
} else {
holder = (ViewHolder)convertView.getTag();
}
holder.text2.setText(arr2[position]);
holder.text2.invalidate();
int lineCnt = holder.text2.getLineCount();
titulaire est une classe statique comme suit:
static class ViewHolder {
TextView text2;
}
titulaire contient non null texte2 et le contenu est aussi non nul.
Quelqu'un peut s'il vous plaît aider?
Merci à l'avance.
Vous devez vous connecter pour publier un commentaire.
Je sais que cette question est assez vieux, mais au cas où quelqu'un vient ici chercher la réponse exacte:
Il devrait être fait sur le Thread de l'INTERFACE utilisateur par la méthode post.
Afin de résoudre ce problème, appliquez les lignes suivantes:
La
OnGlobalLayoutListener
sera appelée après chaque modification de laTextView
(après mesure, le dessin, ..). Ici, vous pouvez attraper des modifications à votreTextView
avant ça va être dessiné à l'écran et de faire tout ce dont vous avez besoin avec elle.La dernière ligne du code est de supprimer l'auditeur, il est important étant donné que nous ne voulons pas continuer à attraper chaque changement de présentation.
mediaAtomLayout
?getLineCount() va vous donner le bon nombre de lignes qu'après une passe de mise en page. Cela signifie que le TextView doit avoir été établi au moins une fois. Je suppose que, à ce stade, votre Textview n'est pas attiré par conséquent, vous obtenez la valeur 0 comme le nombre de lignes
fait TextView.getLineCount() s'appuient sur TextView.mLayout.getLineCount
mais TextView.mLayout est paresseux init avant onMeasure, vous pouvez le faire comme ceci:
J'ai fait une classe asynctask et ne ma getLineCount () des tâches liées à son onPostExecute méthode.