Не дать SeekBar двигаться дальше динамической точки - PullRequest
1 голос
/ 19 января 2011

Мне нужно два SeekBars для установки минимума и максимума, и большой палец на каждом SeekBar не может двигаться дальше другого. Есть ли способ запретить перемещение SeekBar за определенную точку?

1 Ответ

0 голосов
/ 25 января 2011

Нашел решение сам: в методе 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();
}
...