手动移动时,Seekbar OnProgressChanged不会被触发

时间:2015-03-22 21:30:46

标签: android-seekbar

我有一个应用程序,当移动搜索栏(手动)时应该做一些事情。但是,onProgressChanged永远不会执行,即使我确保在移动条形图时进度值确实发生了变化。

onStartTrackingTouch和onStopTrackingTouch都会被解雇而不会出现任何问题。

public class MainActivity extends ActionBarActivity implements OnSeekBarChangeListener{

...

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    SeekBar seekBar = (SeekBar) findViewById(R.id.seekBar1);

    seekBar.setOnSeekBarChangeListener(this);


}

@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
...



}

1 个答案:

答案 0 :(得分:0)

我遇到类似的问题,onProgressChanged()没有被解雇,但{​​{1}}和onStartTrackingTouch()没有这样的问题。

在我的情况下,用户在重新进入活动页面后无法拖动搜索栏,它会随机发生。

这是因为onStopTrackingTouch()内的mediaControl.seek()代码被卡住了。我修复它的方法是确保分配的mediaControl对象是具有有效持续时间的最新对象(即onProgressChanged()' s mediaControl.getDuration()!= 0L)。

因此,如果您遇到类似问题,请先检查onSucces()内的对象,该对象可能出错了。