2011-11-01 40 views
59

'un süresi nedir? LENGTH_LONG ve LENGTH_SHORT tam süresine milisaniye (ms) cinsinden ihtiyacım var. Ayrıca, LENGTH_LONG olan Toast mesajının süresinin, herhangi bir telefonda ve herhangi bir API sürümünde aynı süreye sahip olup olmayacağını bilmem gerekiyor.Bir Toast LENGTH_LONG ve LENGTH_SHORT

Sürenin nerede tanımlandığını bilen biri var mı? Biliyorum LENGTH_LONG, değeri 1 olan bazı int const. Fakat gerçek sürenin nerede olduğunu bulamadım.

+0

setDuration() öğesinde milliseocnds belirtmeyi denediniz mi? Dokümanlar, kullanıcı tarafından konfigüre edilebileceğini, ancak bu konuya özgü olmadığını belirtiyor. –

cevap

135

Yanıtı here. Eğer Toast.LENGTH_SHORT ve Toast.LENGTH_LONG ms değil ama belirttiğim gibi, 0 veya

gerçek süreleri 1. şunlardır: Ben Toast.LENGTH_LONG buldukdeneme yanılma yoluyla

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

2500ms

çok yakın sürer
10

Burada, bayraklarının işaretlerinin bulunduğu resmi android source tanımlanmıştır:

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

Bu, Tost süresinin değiştirilmesine izin verilmediğine dair doğrudur. Ama bir alternatif arıyorsanız ve bunu gerçekten de bir Tost ile yapmanız gerekiyorsa, bunu deneyebilirsiniz.

Ex sonraki satırda başka yinelenen tost tutun:

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

kullanıcı 2 tost arasındaki geçişler herhangi bir değişiklik algılamaz.

Teşekkürler.

+2

Daha önceki cevaplarda 'yapılması imkansız' olarak nitelendirdiğimden beri, alternatif bir yöntem sağladım ve açıkça belirtmiştim. Umarım, anlayabilirsin. Şimdi yeni arama yaptım ve aynı türden bir sorunun olduğunu öğrendim ve bazı cevaplar arasından alternatifler buldum. Ama onlar için hiçbir oy yok. Sadece imkansız olduğu söylenenden daha iyi alternatifler bulmak için daha mı iyi? Umarım bu mantıklıdır. [Android Tostu, “Toast.LENGTH_LONG” dan daha uzun olabilir mi?] (Http://stackoverflow.com/questions/2220560/can-an-android-toast-be-longer-than-toast-length-long) –