【问题标题】:Calling TextView.setText() periodically causes the UI to jerk定期调用 TextView.setText() 会导致 UI 抖动
【发布时间】:2010-09-28 17:08:04
【问题描述】:

我正在编写一个音频播放器,其中一个线程每 250 毫秒更新表示轨道经过时间的 TextView。

显示如下:

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,然后代码从那里处理它。

【问题讨论】:

    标签: android textview settext


    【解决方案1】:

    考虑对这些字段使用固定宽度(16-20dip?)而不是 wrap_content?可变间距字体将移动进度条,因为 1:11 比 1:59 窄。

    或者使用固定间距字体,如果时间总是相同的字符数。

    【讨论】:

    • 我现在设置了固定宽度,这很有效。不过,我通常会回避难以设置的 UI 元素,所以我会研究固定间距的字体(如果栏在 9:59 到 10:00 时向右移动也没关系。重复的抽搐让我很生气,哈哈) .谢谢!!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-20
    相关资源
    最近更新 更多