2016-11-24 3 views
0

Чтобы было ясно, я хочу предотвратить перетаскивание при 80% от максимального значения, а также оставить поле 20%. Диапазон перетаскивания будет (от 20% до 80%).Панель поиска для Android, как заблокировать перетаскивание в диапазоне значений прогресса

Мне просто нужно знать, возможно ли сделать это из существующего метода понятным и легким.

скриншот

enter image description here

+1

Там нет способа, почему дон» Вы хотите использовать 'onProgressChanged'? Это способ сделать это. –

+0

добавить вид сверху стрелки и установить его для clickable = true также использовать linearlayout, чтобы получить 20% – zombie

+0

Alberto Méndez, можете ли вы предоставить мне пример, если вы знаете это на лету ... –

ответ

1

Вы можете сделать он с onProgressChanged с очень простым калькулятором ations. Если значение min равно 0, а максимальное значение - 200, и мы хотим ограничить первый и последний 20%. В onProgressChanged методе вы просто:

// I think this two variables should be out of the method 
int limit = ((20 * 200)/100); 
int maxValue = seekBar.getMax(); 
if(seekBar.getProgress() >= (maxValue - limit)){ 
    seekBar.setProgress(maxValue); 
}else if(seekBar.getProgress() <= limit){ 
    seekBar.setProgress(limit); 
} 

Это было сделано на лету, она не тестировалась и, возможно, есть что-то не так, но это идея

+0

нужно только удалить minValue, не нужно вообще. в строке: seekBar.setProgress (minValue); должен быть seekBar.setProgress (лимит); –

+0

Да, вы правы, и то же самое с условием 'else if', если я не ошибаюсь –

+0

else if is Ok. его невозможно в то же время быть макс и мин ... –

0

, как указано в ответе here относительно

Вы не можете определить минимальное значение. Это 0.

Если вы хотите установить максимальное значение, которое вы можете сделать это

по XML

<SeekBar 
    android:id="@+id/seekBar1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:max="your_max_value"/> 

с помощью Java

seekBar = (SeekBar)findViewById(R.id.seekbar_id); 
seekBar.setMax(your_max_value); 

 Смежные вопросы

  • Нет связанных вопросов^_^