Android seekbar comment bloquer le glisser / le désactiver pour un court laps de temps
je veux bloquer le déplacement d'une barre de recherche Si une valeur est vraie. Est-ce même possible? J'utilise un seekbar comme interrupteur. Si ma valeur seekbar est 0, et j'appuie sur le bouton action a commencé. Si ma valeur seekbar est 1 et que j'appuie sur le bouton action b est démarré.
Je veux empêcher que si l'action A ou B est en cours d'exécution le seekbar est traîné à une autre position.
Comment puis-je y parvenir?
3 réponses
Vous devriez définir votre propre onTouchListener et juste retourner true.
seekBar.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
return true;
}
});
Avez-vous essayé de désactiver la vue?
Ref: http://developer.android.com/reference/android/view/View.html#setEnabled(boolean)
mise à Jour:
https://stackoverflow.com/a/3278616/529691
Idéalement vous ne devriez pas faire ça, que cela va perturber l'utilisateur. Ma suggestion est de repenser votre approche.
définir une variable de niveau de classe
private boolean blockSeekBar = false;
après ce blockSeekBar
variable selon vos besoins et utilisation dans app.
seekBar.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
return blockSeekbar;
}
});
setEnabled (true/false) aussi le choix mais la vue n'est pas bonne donc c'est pourquoi le code ci-dessus fonctionne parfaitement.