2010-10-07 5 views
1

J'ai un ListView où chaque élément représente un podcast pouvant durer jusqu'à 90 minutes. La sélection d'un élément affichera un SeekBar et commencera à diffuser dans l'audio à partir d'une URL en utilisant MediaPlayer.Mise à jour SeekBar dans ListView

Je pourrais utiliser des pointeurs sur la façon de gérer la maintenance de l'état de SeekBar après le défilement de la page et le retour à la vue. Je sais que les vues sont recyclées et j'ai lu que la mise en cache des vues dans l'adaptateur est une mauvaise idée. Je me demande donc quelles sont les autres options disponibles.

Répondre

2

Je sais que les vues sont recyclés et j'ai lu que des vues de mise en cache de l'adaptateur est une mauvaise idée

C'est une mauvaise idée de mettre en cache tous vos vues, sauf via le mécanisme de recyclage . Caching un SeekBar, ou même une ligne contenant un SeekBar, ne sera pas un gros problème. La mise en cache de 1 000 lignes est l'endroit où se situe le problème. Donc, je noterais quel position est celui pour le podcast en cours de lecture. Dans votre implémentation getView() dans votre adaptateur, si le position demandé est celui du podcast en cours de lecture, utilisez votre ligne en cache. Sinon, passez par un recyclage normal.