0

lorsque j'utilise seekBar.setEnabled (false), la barre de recherche est grisée. Est-il possible de conserver la couleur et la luminosité d'origine de la barre même après l'avoir désactivée?Comment faire pour supprimer l'entrée de l'utilisateur de Android Seekbar?

Merci :)

+1

Y a-t-il une raison pour laquelle vous n'utilisez pas 'ProgressBar' à la place? – CommonsWare

+0

@CommonsWare J'ai besoin du pouce comme indicateur dans mon application slider ... donc pensé à utiliser seekbar au lieu de barre de progression. – jithu

+0

Le changement de couleur d'un «ProgressBar» n'est-il pas un «indicateur» suffisant? – CommonsWare

Répondre

0

Je ne sais pas pourquoi vous faites cela, mais vous pouvez faire ce qui suit:

public class MySeekBar extends SeekBar{ 

    private boolean myEnabled; 

    public void setMyEnabled(boolean myEnabled) { 
     this.myEnabled = myEnabled; 
    } 

    @Override 
    public boolean dispatchTouchEvent(MotionEvent event) { 
     if(!myEnabled) { 
      return true; 
     } 

     return super.dispatchTouchEvent(event); 
    } 
... 

Ensuite, utilisez setMyEnabled (false) pour désactiver la saisie tactile

+1

Cela n'empêchera pas un utilisateur avec un clavier/trackball/d-pad sur son appareil de le changer. – adamp

+0

@Evgeny Nacu merci homme :) ... mais est-il un moyen de le faire sans étendre la classe seekbar ?? .. – jithu

+0

@Evgeny Nacu J'ai besoin d'un indicateur de curseur à utiliser dans mon application, il a juste un indicateur qui se déplace sous une échelle et pointe vers différentes valeurs. Pour cela j'ai pensé à utiliser un seekbar avec setEnabled (false), de sorte que les utilisateurs ne peuvent pas déplacer l'indicateur – jithu

0

I juste résolu mon problème même avec ceci:

normalSB.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 

     int originalProgress; 

     @Override 
     public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 


      if (fromUser == true) { 
       seekBar.setProgress(originalProgress); 
      } 

     } 

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

     @Override 
     public void onStopTrackingTouch(SeekBar seekBar) { 
     } 
    }); 

L'espoir peut vous aider à: D

Questions connexes