Ich benötige die genaue Dauer von LENGTH_LONG und LENGTH_SHORT in Millisekunden (ms). Außerdem muss ich wissen, ob die Dauer der Toastnachricht mit LENGTH_LONG in jedem Telefon und mit jeder API-Version dieselbe Dauer hat.
Weiß jemand wo die Dauer definiert ist? Ich meine definiert in ms. Ich weiß, dass LENGTH_LONG eine int const mit dem Wert 1 ist. Aber ich konnte nicht finden, wo die tatsächliche Dauer definiert ist.
Antworten:
Beantwortet hier . Wie du erwähnt hast
Toast.LENGTH_SHORT
undToast.LENGTH_LONG
nicht in ms sondern 0 oder 1 sind.Die tatsächlichen Dauern sind:
quelle
Die
Toast.LENGTH_SHORT
undToast.LENGTH_LONG
sind nur Flaggen.Hier finden Sie die offizielle Android-Quelle, in der diese Flags definiert sind:
quelle
static final int LONG_DELAY = PhoneWindowManager.TOAST_WINDOW_TIMEOUT; static final int SHORT_DELAY = 2000; // 2 seconds still the same
Es ist wahr, dass wir die Dauer des Toasts nicht ändern dürfen. Aber wenn Sie nach einer Alternative suchen und dies wirklich mit einem Toast tun müssen, können Sie dies versuchen.
Behalten Sie einen weiteren doppelten Toast in der nächsten Zeile
Ex:
Der Benutzer erkennt keine Änderung der Übergänge zwischen zwei Toasts.
Vielen Dank.
quelle
Sie müssen die Dauerüberschreibung festlegen, mit
setDuration
in der Aktion, Beispiel:quelle
Ich frage mich, warum Sie nicht die in der Toast.java-Klasse unterstützte Methode setDuration () verwenden.
quelle
Durch Versuch und Irrtum habe ich festgestellt
Toast.LENGTH_LONG
, dass die Dauer sehr nahe bei 2500 ms liegtquelle