2017-07-04 1 views
0

Fondamentalement, j'ai un bouton de volume qui montre un caché SeekBar lorsque vous cliquez dessus, comment faire le SeekBar disparaître à nouveau après 2 ou 3 secondes d'inactivité?Comment cacher Vue après un certain temps d'inactivité

Je veux juste savoir comment puis-je vérifier combien de temps a été passé depuis que le SeekBar est devenu visible sans changer sa progression !?

Répondre

1

Vous pouvez créer un Runnable qui définit la visibilité du SeekBar à invisible:

private final Runnable hideSeekBarRunnable = new Runnable() { 
    @Override 
    public void run() { 
     seekBar.setVisibility(View.INVISIBLE); 
    } 
}; 

Lorsque le bouton de volume est cliqué, afficher le SeekBar et après le Runnable avec un retard de 2-3 sec:

seekBar.setVisibility(View.VISIBLE); 
seekBar.postDelayed(hideSeekBarRunnable, 3000); 

et si le SeekBar interagit avec (ses changements de progrès), retirez INCIDENT Runnable et re-post pour réinitialiser le compteur:

seekBar.removeCallbacks(hideSeekBarRunnable); 
seekBar.postDelayed(hideSeekBarRunnable, 3000); 
+0

Cela ne fonctionnait pas comme ça avec moi, j'ai plutôt ajouté ces deux lignes 'soundSeek.setVisibility (View.VISIBLE); & soundSeek.postDelayed (hideSeekBarRunnable, 3000); 'à l'intérieur du bouton cliquer, d'autre part à l'intérieur du' onProgressChanged' de la barre de recherche, j'ai ajouté 'seekBar.removeCallbacks (hideSeekBarRunnable);' et cela a fonctionné comme je le voulais, une fois le progrès étant en train de changer la barre de recherche va supprimer le runnable comme vous l'avez dit. Je vais éditer la réponse si vous êtes d'accord! –

+0

@SamZar Ah, je pense que le 'SeekBar' est juste un indicateur, pas interagi directement avec, seulement à travers le bouton de volume. Edité la réponse moi-même. – earthw0rmjim

+0

ok, merci pour l'aide :) –