2011-11-01 49 views
59

Necesito la duración exacta de LENGTH_LONG y LENGTH_SHORT en milisegundos (ms). También necesito saber si la duración del mensaje Toast con LENGTH_LONG tendrá la misma duración en cualquier teléfono y con cualquier versión de API.Cuál es la duración de un Toast LENGTH_LONG y LENGTH_SHORT

¿Alguien sabe dónde se define la duración?, Me refiero a definido en ms. Sé que LENGTH_LONG es algo int const con valor 1. Pero no pude encontrar dónde se define la duración real.

+0

¿Intentó simplemente especificar milisegundos en setDuration()? Los documentos dicen que debe ser configurable por el usuario, pero no son específicos en este tema. –

Respuesta

135

Respondido here. Al igual que usted ha mencionado Toast.LENGTH_SHORT y Toast.LENGTH_LONG no están en la EM, pero 0 ó 1.

Las duraciones reales son:

private static final int LONG_DELAY = 3500; // 3.5 seconds 
private static final int SHORT_DELAY = 2000; // 2 seconds 
1

A través de ensayo y error he encontrado Toast.LENGTH_LONG dura muy cerca de 2500ms

10

Aquí el android source oficial donde se definen estos indicadores se definen:

public class NotificationManagerService extends SystemService { 

    static final int LONG_DELAY = 3500; // 3.5 seconds 
    static final int SHORT_DELAY = 2000; // 2 seconds 

    private void scheduleTimeoutLocked(ToastRecord r){ 
     mHandler.removeCallbacksAndMessages(r); 
     Message m = Message.obtain(mHandler, MESSAGE_TIMEOUT, r); 
     long delay = r.duration == Toast.LENGTH_LONG ? LONG_DELAY : SHORT_DELAY; 
     mHandler.sendMessageDelayed(m, delay); 
    } 
} 
4

Es cierto que no podemos cambiar la duración del Toast. Pero si está buscando una alternativa y realmente necesita hacer esto con un Toast, puede intentarlo.

mantener a la otra tostada duplicado en la línea siguiente

Ex:

Toast.makeText(this, "Hello StackOverFlow", Toast.LENGTH_LONG).show(); 
Toast.makeText(this, "Hello StackOverFlow", Toast.LENGTH_LONG).show(); 

El usuario no detectará ningún cambio en las transiciones entre 2 tostadas.

Gracias.

+2

Dado que se menciona claramente como "imposible de hacer" en las respuestas anteriores, proporciono un método alternativo y lo mencioné claramente también. Espero que puedas entenderlo. Acabo de buscar ahora y descubrí que el mismo tipo de pregunta estaba allí y reviso las respuestas, algunas de ellas son alternativas. Pero no encuentro ningún voto negativo para ellos. Mejor para encontrar alternativas que decir que es imposible solo ¿verdad? Espero que esto tenga sentido. [¿Puede una Toast de Android ser más larga que "Toast.LENGTH_LONG"?] (Http://stackoverflow.com/questions/2220560/can-an-android-toast-be-longer-than-toast-length-long) –

Cuestiones relacionadas