Android开发 - 滑动条监听进度setOnSeekBarChangeListener方法解析
-
setOnSeekBarChangeListener方法的参数是一个SeekBar.OnSeekBarChangeListener类型的对象,该对象中包含了三个方法:
onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)
:当SeekBar的进度发生变化时就会调用这个方法。在这个方法中,我们可以获取SeekBar滑动条的当前进度值,并通过这个值来实现一些业务逻辑- 参数解析:
- seekBar:滑动条对象
- progress:滑动条当前值
- fromUser:当由用户拖拽行为更新SeekBar的位置造成的,那么fromUser就为true;如果是因为代码更新SeekBar的位置造成的,那么fromUser为false
- 参数解析:
onStartTrackingTouch(SeekBar seekBar)
:当用户开始拖动SeekBar时就会调用这个方法。在这个方法中,我们可以实现一些UI上的交互效果,比如显示一些提示信息- 参数解析:
- seekBar:滑动条对象
- 参数解析:
onStopTrackingTouch(SeekBar seekBar)
:当用户停止拖动SeekBar时就会调用这个方法。在这个方法中,我们可以保存SeekBar的当前进度值,比如将当前进度值保存到SharedPreferences中- 参数解析:
- seekBar:滑动条对象
- 参数解析:
-
在以下代码中,我们通过setOnSeekBarChangeListener方法给SeekBar添加了一个监听器。当SeekBar的进度发生变化时,onProgressChanged方法就会被回调,我们可以在这个方法中获取SeekBar的当前进度值,并进行一些相应的操作。同理,当用户开始拖动SeekBar时,onStartTrackingTouch方法就会被回调;当用户停止拖动SeekBar时,onStopTrackingTouch方法就会被回调
SeekBar seekBar = findViewById(R.id.View的id值); seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { // 进度变化时的操作 } @Override public void onStartTrackingTouch(SeekBar seekBar) { // 开始拖动时的操作 } @Override public void onStopTrackingTouch(SeekBar seekBar) { // 停止拖动时的操作 } });