2012-01-15 5 views
7

Quiero bloquear el arrastre de una barra de búsqueda si un valor es verdadero. ¿Esto es posible? Yo uso una barra de búsqueda como un interruptor. Si el valor de mi barra de búsqueda es 0, y presiono el botón, la acción A comenzó. Si el valor de mi barra de búsqueda es 1 y presiono el botón, se inicia la acción B.
Quiero evitar que Si la acción A o B se está ejecutando, la barra de búsqueda se arrastre a otra posición.

¿Cómo puedo lograr esto?Android barra de búsqueda cómo bloquear el arrastre/deshabilitarlo por corto tiempo

Respuesta

42

Debería configurar su propio toTouchListener y simplemente devolver true.

seekBar.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View view, MotionEvent motionEvent) { 
       return true; 
      } 
     }); 
+0

setEnabled (falso) realmente difumina la barra de búsqueda como un todo. Si solo queremos deshabilitar el tacto, este es el trabajo perfecto. – raksja

+0

Este es el mejor .. – Neela

+0

muchas gracias. – Atula

6

¿Has probado a deshabilitar la vista?

Ref: http://developer.android.com/reference/android/view/View.html#setEnabled(boolean)

Actualizar:

https://stackoverflow.com/a/3278616/529691

Idealmente que no debería estar haciendo esto, ya que esto va a confundir al usuario. Mi sugerencia es reconsiderar su enfoque.

+1

Eso significa que la vista se ha ido, eso no es lo que quiero. – Leandros

+0

Incorrecto. NO elimina la vista, inhabilita la interacción de la vista por parte del usuario. Lee tu documentación. – JoxTraex

+0

Ah, está bien. Lo probará. ¡Gracias! – Leandros

0

Establecer el nivel de una clase variable de

private boolean blockSeekBar = false; 

después de que establece blockSeekBar variable como por su exigencia y su uso en la aplicación.

seekBar.setOnTouchListener(new OnTouchListener() { 
     @Override 
     public boolean onTouch(View view, MotionEvent motionEvent) { 
      return blockSeekbar; 
     } 
    }); 

setEnabled(true/false) También hay más remedio vista no está mostrando buena así que por eso por encima de código es perfecto estado de funcionamiento.

+0

No entiendo. ¿Por qué 'setEnabled()' no es una buena opción? Para mí funciona bien. –

+0

cuando establece setEnabled (verdadero/falso) luego la vista muestra un desenfoque significa que se muestra directamente no se puede hacer clic –

Cuestiones relacionadas