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?

12
demandé sur Leandros 2012-01-15 22:13:46

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;
            }
        });
52
répondu Maxim Tulupov 2013-04-26 12:40:44

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.

6
répondu JoxTraex 2017-05-23 12:02:29

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.

0
répondu Yogesh Rathi 2016-12-10 11:08:04