为搜索栏实现了以下回调:
void onProgressChanged(Seekbar seekBar, int progress, boolean fromTouch);
void onStartTrackingTouch(Seekbar seekBar);
void onStopTrackingTouch(Seekbar seekBar);
但是在搜索栏上按下OK后会收到什么回调?
onStartTrackingTouch()。 当用户完成移动搜索条时,会收到onStopTrackingTouch()。 我在这些定义中是正确的,还是其他的两个回调?
有人可以帮助解决这两个问题吗? 感谢
答案 0 :(得分:1)
你是什么意思
但是在搜索栏上按下OK后会收到什么回调?
你有一个应该实现某些东西的确定按钮吗?如果是这样,您可以使用整数值来保存进度更改时的进度,然后当您按下确定按钮时,您可以执行任何您想要的操作。看看这个例子
seekerSpacing.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
doSomethingAfterTracking();
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
doSomethingWhenTrackingStarts();
}
/**
* seekBar The SeekBar whose progress has changed
* progress The current progress level. This will be in the range 0..max where max was set by setMax(int). (The default value for max is 100.)
* fromUser True if the progress change was initiated by the user.
*/
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
setMyCurrentProgress(progress);
doSomeOtherMethodIfRequired();
}
});
您可以查看Android docs以获取正确的解释。但这是一个快速摘要。
只要您触摸搜索栏,就会调用onStartTrackingTouch
方法。触摸搜索条滑块
只要放开搜索栏,就会调用onStopTrackingTouch
方法。当您放开搜索条滑块时,将始终调用此方法。
一旦更改了搜索栏的进度,就会调用onProgressChanged
方法。只有在进度发生变化时才会调用此方法