2

スレッドがトラックの経過時間を表す TextView を 250 ミリ秒ごとに更新するオーディオ プレーヤーをコーディングしています。

表示は次のようになります。

1:30/2:30<-----進行状況バー----->

TextView 1 は 1:30/ で、TextView 2 は 2:30 です。

どちらも幅の wrap_content に設定されています。

何が起こるかというと、250 ミリ秒のサイクルごとに、スレッドが現在の時刻をチェックし、TextView 1 を更新します。この短い瞬間に、TextView 2 とプログレス バーが瞬間的に約 2 ~ 4 ピクセル右に押し出されます。その後、次のサイクルで同じことが起こるまで元の場所に戻ります。

何が起こっているのかわかりません。末尾のスペース文字などはなく、理論的にはすべてがスムーズに機能するはずですが、そうではありません。

誰でも私を助けることができますか?他の誰かが同様の問題に直面したことを願っています....

PS: レイアウト XML ファイルで TextView 1 を 0:00/ に初期化し、TextView 2 を 0:00 に初期化し、コードはそこからそれを処理します。

4

1 に答える 1

5

それらのフィールドに wrap_content の代わりに固定幅 (16-20dip?) を使用することを検討しましたか? 1:11 は、たとえば 1:59 よりも狭いため、可変ピッチ フォントはプログレス バーを動かします。

または、時間が常に同じ文字数になる場合は、固定ピッチ フォントに移動します。

于 2010-09-28T17:11:03.730 に答える