如何更新SeekBar不触发OnSeekBarChangeListener?

dmi*_*tru 5 events android seekbar android-widget

我有一个附带OnSeekBarChangeListener实例的SeekBar.每次用户更改值时,它的方法onProgressChanged()都会被触发.没关系.

但后来我试图像这样更新SeekBar的进度:

seekBar.setProgress(value);

我希望不会发生任何事件 - 只是SeekBar的进展会发生变化.但是onProgressChanged()在这种情况下也会被调用.

如何在不触发事件的情况下更改SeekBar的进度?

小智 17

public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {}
Run Code Online (Sandbox Code Playgroud)

看看参数.你有一个来自用户的布尔值,使用它.

if (fromUser) {
.........
.........
}
Run Code Online (Sandbox Code Playgroud)

只有在用户启动更改时才会执行此操作.如果从代码设置seekbar的值,则事件将触发,但由于if()语句,代码将不会执行.再见.-Marco-