2017-07-04 6 views
0

Grundsätzlich habe ich eine Lautstärketaste, die eine versteckte SeekBar zeigt, wenn geklickt wird, wie man die SeekBar nach 2 oder 3 Sekunden Inaktivität wieder ausgeblendet zu machen?Verbergen Ansicht nach einer bestimmten Zeit der Inaktivität

Ich will nur wissen, wie kann ich überprüfen, wie viel Zeit verbracht wurde, seit die SeekBar sichtbar wurde, ohne ihren Fortschritt zu ändern !?

Antwort

1

Sie könnten ein Runnable erstellen, die die Sichtbarkeit des SeekBar unsichtbar setzt:

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

Wenn die Lautstärke-Taste angeklickt wird, zeigt die SeekBar und poste Runnable mit einer 2-3 Sekunden Verzögerung:

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

und wenn die SeekBar mit (seinen Fortschritt Änderungen) in Wechselwirkung ist, entfernen sie die ausstehende Runnable und Wieder Post den Zähler zurückzusetzen:

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

Es funktionierte nicht so mit mir, ich fügte stattdessen diese zwei Zeilen hinzu 'soundSeek.setVisibility (View.VISIBLE); & soundSeek.postDelayed (hideSeekBarRunnable, 3000); 'innerhalb der Schaltfläche klicken, auf der anderen Seite innerhalb der' onProgressChanged' der Suchleiste, fügte ich diese 'seekBar.removeCallbacks (hideSeekBarRunnable);' und es funktionierte wie ich wollte, einmal Der Fortschritt, der die Suchleiste verändert, entfernt das Runnable, wie Sie gesagt haben. Ich werde die Antwort bearbeiten, wenn Sie einverstanden sind! –

+0

@SamZar Ah, ich denke, dass die 'SeekBar' nur ein Indikator ist, nicht direkt interagiert, nur durch die Lautstärketaste. Bearbeitete die Antwort selbst. – earthw0rmjim

+0

ok, danke für die Hilfe :) –

Verwandte Themen