2011-11-01 12 views
59

Ho bisogno della durata esatta di LENGTH_LONG e LENGTH_SHORT in millisecondi (ms). Inoltre ho bisogno di sapere se la durata del messaggio Toast con LENGTH_LONG avrà la stessa durata in qualsiasi telefono e con qualsiasi versione API.Qual è la durata di un Toast LENGTH_LONG e LENGTH_SHORT

Qualcuno sa dove è definita la durata?, Intendo definita in ms. So che LENGTH_LONG è un int const con valore 1. Ma non sono riuscito a trovare dove è definita la durata effettiva.

+0

hai provato a specificare solo milliseocnds in setDuration()? I documenti dicono che deve essere configurabile dall'utente, ma non sono specifici su questo problema –

risposta

135

risposto here. Come lei ha citato Toast.LENGTH_SHORT e Toast.LENGTH_LONG non sono in ms ma 0 o 1.

Le durate effettive sono:

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

Attraverso tentativi ed errori ho trovato Toast.LENGTH_LONG dura molto vicino al 2500ms

10

Qui il android source ufficiale dove sono definiti questi flag :

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

è vero che non è consentito modificare la durata del Toast. Ma se stai cercando un'alternativa e hai davvero bisogno di farlo con un toast, puoi provare questo.

Tenere un altro brindisi duplicato nella riga successiva

Es:

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

L'utente non rileverà alcun cambiamento nelle transizioni tra 2 brindisi.

Grazie.

+2

Poiché è chiaramente indicato come "impossibile da fare" nelle risposte precedenti, sto fornendo un metodo alternativo e ho menzionato chiaramente anche questo. Spero tu possa capire. Ho appena cercato ora e ho scoperto che lo stesso tipo di domanda era lì e passare attraverso le risposte alcune di esse sono alternative. Ma non trovo voti negativi per loro. Meglio trovare alternative che dire impossibile, giusto? Spero che abbia senso. [È possibile che Android Toast sia più lungo di "Toast.LENGTH_LONG"?] (Http://stackoverflow.com/questions/2220560/can-an-android-toast-be-longer-than-toast-length-long) –

Problemi correlati