我还没有看到这个问题在 SO 中被提及,所以就这样吧。我有一个搜索栏,可以防止搜索超出次要进度(在本例中为音乐缓冲)。假设这首歌长 5 分钟,已缓冲 4 分钟,并且正在一分钟标记处播放。当我去拖动拇指时,它会很好地拖动和下降。问题是,当我停止拖动(不释放)然后再次拖动时,拇指会从当前播放位置(1 分钟)快速跳到我拖动拇指的位置。当我释放时,一切都很好,只是拖动拇指的问题。这是我的搜索栏监听器......
private SeekBar.OnSeekBarChangeListener seekBarChangeListener = new SeekBar.OnSeekBarChangeListener() {
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
int secondaryPosition = seekBar.getSecondaryProgress();
if (progress > secondaryPosition) {
seekBar.setProgress(secondaryPosition-1);
}
}
public void onStartTrackingTouch(SeekBar seekBar) {
}
public void onStopTrackingTouch(SeekBar seekBar) {
seekMediaPlayerToSeekBarTouch(seekBar);
}
};
最佳答案
我猜您有一个 Handler
或 Thread
来更新 SeekBar
?我建议设置一个基本检查来查看用户是否正在处理 SeekBar
,这样在处理 SeekBar
时就不会继续尝试重绘 SeekBar
的拇指。只需在 onStartTrackingTouch()
方法中设置一个 boolean 值,例如将 mSeekbarTracking
设置为 true,然后在 SeekBar
更新程序中检查 mSeekbarTracking
在尝试更新之前为 false。
我不知道这是否能解决您的所有问题。也许您可以尝试一下,看看它如何影响您的问题。如果您发布用于更新 SeekBar
的代码,这可能会对我们有所帮助。
干杯
关于java - Android SeekBar 抖动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6640524/