如何设置Toast显示时间小于Toast.LENGTH_SHORT

Zoo*_*bie 24 android toast

我想要显示比Toast.LENGTH_SHORT更少的吐司,因为我觉得它需要大约2秒钟.我想要显示吐司只有半秒钟.

什么是Toast.LENGTH_SHORT和Toast.LENGTH_LONG的时间间隔?

Emr*_*mza 29

这对我有用

final Toast toast = Toast.makeText(getApplicationContext(), "The following message will disappear in half second", Toast.LENGTH_SHORT);
    toast.show();

    Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
           @Override
           public void run() {
               toast.cancel(); 
           }
    }, 500);
Run Code Online (Sandbox Code Playgroud)


Ser*_*tov 24

只有两个可能的值:

private static final int LONG_DELAY = 3500; // 3.5 seconds
private static final int SHORT_DELAY = 2000; // 2 seconds
Run Code Online (Sandbox Code Playgroud)

设置其他值不起作用.如果持续时间不等于1(Toast.LENGTH_LONG),那么持续时间将为SHORT_DELAY(2秒):

long delay = immediate ? 0 : (r.duration == Toast.LENGTH_LONG ? LONG_DELAY : SHORT_DELAY);
Run Code Online (Sandbox Code Playgroud)

Toast写的来源

这一次可以由用户定义.

但我找不到办法做到这一点.

更新:这里有解决方案:设置Toast Appear Length


noy*_*ter 10

见我建议的解决方案在这里.您基本上在比标准Toast持续时间短的指定延迟之后调用toast.cancel().