J'ai besoin de la durée exacte de LENGTH_LONG et LENGTH_SHORT en millisecondes (ms). J'ai également besoin de savoir si la durée du message Toast avec LENGTH_LONG aura la même durée dans n'importe quel téléphone et avec n'importe quelle version d'API.
Est-ce que quelqu'un sait où est définie la durée?, Je veux dire définie en ms. Je sais que LENGTH_LONG est un const int avec la valeur 1. Mais je n'ai pas pu trouver où est la durée réelle définie.
Réponses:
Répondu ici . Comme vous l'avez mentionné
Toast.LENGTH_SHORT
etToast.LENGTH_LONG
ne sont pas en ms mais en 0 ou en 1.Les durées réelles sont:
la source
Les
Toast.LENGTH_SHORT
et neToast.LENGTH_LONG
sont que des drapeaux.Vous pouvez trouver ici la source officielle d' Android où ces drapeaux sont définis:
la source
static final int LONG_DELAY = PhoneWindowManager.TOAST_WINDOW_TIMEOUT; static final int SHORT_DELAY = 2000; // 2 seconds still the same
il est vrai que nous ne sommes pas autorisés à modifier la durée du toast. Mais si vous recherchez une alternative et que vous avez vraiment besoin de le faire avec un toast, vous pouvez essayer ceci.
Gardez un autre toast en double dans la ligne suivante
Ex:
L'utilisateur ne détectera aucun changement dans les transitions entre 2 toasts.
Merci.
la source
Vous devez définir le remplacement de durée, avec
setDuration
dans l'action, exemple:la source
Je me demande pourquoi n'utilisez-vous pas la méthode setDuration () prise en charge dans la classe Toast.java ???
la source
Par essais et erreurs, j'ai trouvé que
Toast.LENGTH_LONG
durait très près de 2500 msla source