Java Android SeekBar抖动

Java Android SeekBar抖动,java,android,media-player,seekbar,Java,Android,Media Player,Seekbar,我还没有看到这个问题的报道,所以就这样吧。我有一个seekbar,它可以防止在二级进程之外进行搜索(在本例中是音乐缓冲)。假设这首歌有5分钟长,缓冲了4分钟,播放时间为1分钟。当我去拖动拇指时,它会很好地拖拽和掉落。问题是,当我停止拖动(不释放)然后再次拖动时,拇指会从当前播放位置(1分钟)快速跳到我拖动拇指的位置。当我释放时,没关系,只是拖动拇指的问题。这是我的seekbar听众 private SeekBar.OnSeekBarChangeListener seekBarChangeList

我还没有看到这个问题的报道,所以就这样吧。我有一个seekbar,它可以防止在二级进程之外进行搜索(在本例中是音乐缓冲)。假设这首歌有5分钟长,缓冲了4分钟,播放时间为1分钟。当我去拖动拇指时,它会很好地拖拽和掉落。问题是,当我停止拖动(不释放)然后再次拖动时,拇指会从当前播放位置(1分钟)快速跳到我拖动拇指的位置。当我释放时,没关系,只是拖动拇指的问题。这是我的seekbar听众

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);
    }

};

我猜您有一个
处理程序
线程
来更新
SeekBar
?我建议设置一个基本检查,查看用户是否正在处理
SeekBar
,这样它就不会在处理
SeekBar
时一直试图重新绘制拇指。只需在
onStartTrackingTouch()
方法中将一个布尔值(如
mSeekbarTracking
设置为true),然后在
SeekBar
更新程序中,在尝试更新它之前,让它检查
mSeekbarTracking
是否为false

我不知道这是否能解决你所有的问题。也许你可以试试,看看它对你的问题有什么影响。如果您发布用于更新
SeekBar
的代码,可能会对我们有所帮助

干杯