Cómo limitar el buscador

Me gustaría establecer límites máximos y mínimos de SeekBar a 50 y 20, respectivamente.

SeekBar tiene una opción directa top proporcionar valor máximo, pero ¿cómo establecer su valor mínimo a 20 en lugar de 0?

En SeekBar can set only max value.

 <SeekBar android:id="@+id/SeekBar01" android:layout_width="fill_parent" android:layout_height="wrap_content" android:max="50"/> 

Y, No puede establecer directamente el valor mínimo en la barra de búsqueda.

  SeekBar mSeekbar = (SeekBar) findViewById(R.id.SeekBar01); mSeekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { length_edit.setText(Integer.toString(progress + 20)); } public void onStartTrackingTouch(SeekBar seekBar) {} public void onStopTrackingTouch(SeekBar seekBar) {} }); 

Como se ve el progreso mínimo se puede sumar con min que me gustaría – en su caso 20.

Establezca el valor máximo en 30 y añada 20 a los valores leídos de SeekBar.

La forma más sencilla de hacerlo es limitarlo en SeekBar.OnSeekBarChangeListener() para su SeekBar .

Primero, necesitas crear un campo con min o valor por defecto. A continuación, establezca este valor al crear SeekBar :

 private int fillDefault; 

En onCreateView() de un Fragment o onCreate de una Activity :

 fillDefault = 20; fillSeekBar.setProgress(fillDefault); 

En segundo lugar, implementar el oyente para ello:

 fillSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { // Notification that the progress level has changed. if (progress < fillDefault){ seekBar.setProgress(fillDefault); // magic solution, ha } } @Override public void onStartTrackingTouch(SeekBar seekBar) { // Notification that the user has started a touch gesture. } @Override public void onStopTrackingTouch(SeekBar seekBar) { // Notification that the user has finished a touch gesture. } }); 

Funciona. Simple e impresionante: D

Por ejemplo;

  public static int LENGTH_MIN_VALUE = 20; public static int LENGTH_MAX_VALUE = 50; SeekBar seekBar = (SeekBar) findViewById(R.id.passwordSeekBar); seekBar.setMax(LENGTH_MAX_VALUE); seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { if(progress <= Constract.PASSWORD_LENGTH_MIN_VALUE){ progress = Constract.PASSWORD_LENGTH_MIN_VALUE + progress; } String numberAsString = String.valueOf(progress); seekNumberView.setText(numberAsString); } @Override public void onStartTrackingTouch(SeekBar seekBar) {} @Override public void onStopTrackingTouch(SeekBar seekBar) {} }); 

He respondido a esta pregunta aquí: Cómo establecer seekbar mínimo y máximo valor .

Con la matemática simple usted puede fijar el valor mínimo, el valor máximo e incluso el paso de su barra de búsqueda.

Espero que esto ayude !

Puede probar esto:

 seekBar.setMax(max_value-min_value); 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.