2010-09-28 5 views
2

Je code un lecteur audio où un thread met à jour le TextView représentant le temps écoulé de la piste, toutes les 250 millisecondes.Appeler TextView.setText() provoque périodiquement le jerk

L'écran ressemble à ceci:

1: 30/2: 30 < ----- Barre de progression ----->

TextView 1 est de 1: 30/et TextView 2 est 2h30.

Les deux sont définis sur wrap_content pour la largeur. Qu'est-ce qui se passe, c'est que tous les 250 millisecondes, le thread vérifie l'heure actuelle et met à jour TextView 1. Pendant ce bref instant, TextView 2 et la barre de progression sont poussés momentanément vers la droite d'environ 2-4 pixels. Puis ils reviennent à la place jusqu'à ce que la même chose arrive au cours du prochain cycle.

Je ne sais pas ce qui se passe. Il n'y a pas de caractères d'espace de fin, etc et tout devrait, théoriquement, fonctionner correctement, mais ce n'est pas le cas.

Quelqu'un peut-il m'aider? J'espère que quelqu'un d'autre pourrait avoir rencontré un problème similaire ....

PS: J'initialise TextView 1 à 0: 00/et TextView 2 à 0:00 dans le fichier XML de mise en page et le code gère à partir de là .

Répondre

5

Considéré en utilisant une largeur fixe (16-20dip?) Au lieu de wrap_content pour ces champs? La police à calage variable va déplacer la barre de progression, puisque 1:11 est plus étroit que, disons, 1:59.

Ou d'aller à une police à pas fixe, si les temps seront toujours le même nombre de caractères.

+1

Je définis la largeur fixe pour l'instant, ce qui fonctionne. En général, j'évite les éléments d'interface utilisateur complexes, je vais donc me pencher sur les fontes fixes (ce n'est pas grave si la barre se déplace à droite quand elle passe de 9h59 à 10h00, ce sont les secousses répétées qui m'énervaient) . Merci!!! – Sid

Questions connexes