2010-05-27 12 views
5

Ho letto i documenti e non riesco a capire come cancellare un "trascinamento" su un Seekbar una volta che la barra è stata completata.Come annullare un movimento di "trascinamento" su Android Seekbar?

Ad esempio, quando trascino la barra fino alla fine, voglio che si verifichi un evento. Tuttavia, se tengo il dito sullo schermo e trascino il dito oltre il SeekBar, esso continua a sparare quell'evento anche dopo aver resettato il progresso della Seekbar. Come posso evitare che questa azione accada?

Grazie

+1

IMO, forza cancellazione di un evento del genere sembra che porterebbe ad un comportamento inaspettato interfaccia utente per l'utente. Pensaci: l'utente trascina il pollice fino alla fine, ("annulla" il trascinamento qui), ma poi l'utente si rende conto che vuole trascinarlo indietro. Ma trascinare indietro ora non funzionerebbe perché hai annullato l'evento. –

risposta

7
seekBarObj.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { 

     int originalProgress; 

     @Override 
     public void onStopTrackingTouch(SeekBar seekBar) { 
     } 

     @Override 
     public void onStartTrackingTouch(SeekBar seekBar) { 
      originalProgress = seekBar.getProgress(); 
     } 

     @Override 
     public void onProgressChanged(SeekBar seekBar, int arg1, boolean fromUser) { 
      if(fromUser == true){ 
       seekBar.setProgress(originalProgress); 
      }    
     } 
    }); 
+0

Questa non sembra essere l'idea migliore .. http://stackoverflow.com/a/16236736/1068800 -> Funziona perfettamente .. – Neela

10

Prova this..it funziona bene ..

mSeekBar.setEnabled(false); 
+1

Questa è la risposta ... @alex contrassegnarlo come tale –

+7

Questa non è la risposta, disabilitando la barra di ricerca si modifica lo stato di drawables e quindi il suo colore – artkoenig

Problemi correlati