¿Cómo actualizar SeekBar no disparar OnSeekBarChangeListener?
Tengo un SeekBar con una instancia de OnSeekBarChangeListener adjunta. Cada vez que un usuario cambia el valor, su método onProgressChanged () se dispara. Esta bien.
Pero entonces estoy tratando de actualizar el progreso de la SeekBar de esta manera:
- Multiple SeekBars escucha
- Cómo administrar MediaPlayer.setVolume () + SeekBar para configurarlo + control de volumen del dispositivo
- SeekBar establece el espesor de la línea y el color del código
- Programa Android para acercar y alejar con la ayuda de seekbar?
- Mediaplayer actualización de progreso a seekbar no suave?
seekBar.setProgress(value);
Espero que no se desencadenen eventos – solo el progreso de SeekBar cambiará. Pero onProgressChanged () se llama en este caso también.
¿Cómo puedo cambiar el progreso de un SeekBar sin disparar eventos?
- SearchView getActionView devolver null
- No se puede mover Android SeekBar con Appium
- ¿Cómo agregar TextView en medio de pulgar SeekBar?
- SeekBar setProgress descarta progreso secundario
- Android SeekBar no puede ser de ancho completo incluso establecer padding 0 en AppCompat 23.1.0
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {}
Mira los parámetros. Tiene un booleano de Usuario, úselo.
if (fromUser) { ......... ......... }
Al hacerlo, el código se ejecutará sólo cuando el usuario haya iniciado el cambio. Si establece el valor de seekbar en el código, el evento se disparará pero el código no se ejecutará debido a la instrucción if (). Adiós. -Marco-
Estás cambiando el progreso en el SeekBar
. Por supuesto onProgressChanged
será llamado.
Si desea evitar esto, puede anular el oyente antes de establecer su valor
seekBar.setOnSeekBarChangeListener(null); seekBar.setProgress(value); seekBar.setOnSeekBarChangeListener(this);