0

我还没有在 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);
    }

};
4

1 回答 1

1

我猜你有 aHandler或 aThread来更新SeekBar? 我建议设置一个基本检查以查看用户是否正在处理它,SeekBar这样它就不会在处理拇指SeekBar时继续尝试重绘拇指。只需在方法中设置一个布尔值,例如设置为mSeekbarTrackingtrue onStartTrackingTouch(),然后在SeekBar更新程序中,使其mSeekbarTracking在尝试更新之前检查是否为 false。

我不知道这是否能解决你所有的问题。也许您可以尝试一下,看看它如何影响您的问题。如果您发布用于更新SeekBar.

干杯

于 2011-08-07T22:15:04.680 回答