防止SeekBar移动过动态点

时间:2011-01-19 04:27:35

标签: android seekbar

我需要两个SeekBars来设置最小值和最大值,而每个SeekBar上的拇指都不能移过另一个。有没有办法禁止将SeekBar移动到特定点?

1 个答案:

答案 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();
}