Tout d'abord j'ai un simple ListView
. Mettre en œuvre le BaseAdapter
et en utilisant le modèle ViewHolder J'ai simplement un TextView
que sur chaque getView()
appel définit le texte avec un différent String
. Chaque chaîne a différentes longueurs et peut se diviser en plusieurs lignes.ListView + simple textview dans chaque article = collecte des ordures excessive
La collecte excessive des déchets se produit lorsque vous faites défiler, elle est provoquée par le StaticLayout
qui est utilisé dans la classe TextView
. Il crée float[]
puis le garbage collector les collecte et provoque un bégaiement dans mon défilement ListView
. Je suis arrivé à cette conclusion après avoir suivi mon défilement à travers le Allocation Tracker. Notez qu'excessif n'est pas que c'est la collection d'énormes morceaux de mémoire mais beaucoup de petits.
Depuis que je suis confronté à ce problème, même si je simplifie mon code à la base, je suppose que quelqu'un a rencontré ce problème avant moi. Parce que c'est un bug système et pas quelque chose que je peux contourner tout en utilisant le TextView
, que suggérez-vous que j'utilise comme une solution de contournement pour ce bug?
Vous faites probablement quelque chose de mal. Postez votre code. –
+1 à ci-dessus. Code postal, ou c'est impossible à dire. – bos