1

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

4

1 回答 1

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();
}
于 2011-01-25T03:35:50.163 回答