0

J'ai une activité avec un listView. La liste list contient des éléments étendus. Comme j'ai 200 articles étalés, l'application devient très lente. Est-il possible d'utiliser le filetage ici pour augmenter les performances? Comme obtenir la mise en forme pour les éléments Spanned dans un fil?Utiliser les discussions dans la listeVoir

+0

Qu'est-ce qui est lent? Initialisation? Ou défilement = adaptateur? – Malachiasz

+0

Initialisation. – user1337

+0

alors oui, vous pouvez l'exécuter sur un thread, mais attention, setAdapter doit se produire après l'initialisation du tableau. donc vous devez montrer quelque chose à l'utilisateur avant de toute façon. – Malachiasz

Répondre

0

Si vous voulez d'abord charger tous les éléments, puis les afficher, l'enfilage ne va pas aider (beaucoup) - il faudra encore beaucoup de temps pour initialiser. La seule chose à faire sur un thread séparé vous permettra d'être réactif lorsque vous retirez le chargement du thread de l'interface utilisateur. Pour réellement rendre ceci plus rapidement, vous devriez envisager de mettre en place votre propre adaptateur, par ex. en étendant ArrayAdapter. Dans la méthode getView(), vous allez exécuter le Html.fromHtml(stringData[position]); et définir le contenu de l'élément textview sur le résultat Spannable. Cela vous oblige à avoir toutes vos chaînes dans un tableau. Il y a many examples là-bas.

L'avantage de ceci est que vous n'avez pas à faire tous les fromHtml lors de l'initialisation, mais ils sont effectués à la volée par l'adaptateur.

Bonne chance!