2010-05-27 1 views
5

Ich habe durch die Dokumente gelesen, und ich kann nicht herausfinden, wie man einen "Ziehen" auf einer Seekbar abbricht, sobald der Riegel vollendet worden ist.Wie kann ich eine "Ziehen" Bewegung auf einer Android Seekbar abbrechen?

Zum Beispiel, wenn ich die Leiste bis zum Ende ziehen, möchte ich ein Ereignis passieren. Wenn ich jedoch meinen Finger auf dem Bildschirm halte und meinen Finger an der SeekBar vorbei ziehe, feuert er weiter dieses Ereignis ab, selbst nachdem ich den Fortschritt der Suchleiste zurückgesetzt habe. Wie kann ich verhindern, dass diese Aktion ausgeführt wird?

Dank

+1

IMO, Kraft-Cancelling ein Ereignis wie das scheint, wie es zu einem unerwarteten Verhalten der Benutzeroberfläche für den Anwender führen würde. Denken Sie darüber nach - der Benutzer zieht den Daumen bis zum Ende, (Sie "Abbrechen" hier ziehen), aber dann merkt der Benutzer, dass sie es zurückziehen möchten. Aber jetzt zurück zu ziehen würde nicht funktionieren, weil Sie das Ereignis abgebrochen haben. –

Antwort

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

Dies scheint nicht die beste Idee zu sein .. http://Stackoverflow.com/a/16236736/1068800 -> Das funktioniert perfekt .. – Neela

10

Versuchen this..it gut funktioniert ..

mSeekBar.setEnabled(false); 
+1

Dies ist die Antwort ... @alex bitte markieren Sie als solche –

+7

Dies ist nicht die Antwort, indem Sie die Suchleiste deaktivieren, indem Sie den Zeichensatzstatus und damit die Farbe ändern – artkoenig

Verwandte Themen