我需要两个SeekBars来设置最小值和最大值,而每个SeekBar上的拇指都不能移过另一个。有没有办法禁止将SeekBar移动到特定点?
答案 0 :(得分:0)
自己找到解决方案:在SeekBar.OnSeekBarChangeListener.onProgressChanged()
方法中,只需将进度设置为正确的值,在这种情况下与其他SeekBar
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
if (!isLegalMove(seekBar)) {
seekBar.setProgress(mOtherSeekBar.getProgress());
}
}
private boolean isLegalMove(SeekBar thisSeekBar) {
if (mOtherSeekBar == null) {
return true;
}
return mIsMax && mOtherSeekBar.getProgress() <= thisSeekBar.getProgress() ||
!mIsMax && mOtherSeekBar.getProgress() >= thisSeekBar.getProgress();
}