Preciso da duração exata de LENGTH_LONG e LENGTH_SHORT em milissegundos (ms). Também preciso saber se a duração da mensagem Toast com LENGTH_LONG terá a mesma duração em qualquer telefone e com qualquer versão de API.
Alguém sabe onde está definida a duração?, Quero dizer definida em ms. Eu sei que LENGTH_LONG é algum int const com valor 1. Mas não consegui encontrar onde está definida a duração real.
Respostas:
Respondido aqui . Como você mencionou
Toast.LENGTH_SHORT
eToast.LENGTH_LONG
não estão em ms, mas em 0 ou 1.As durações reais são:
fonte
Os
Toast.LENGTH_SHORT
eToast.LENGTH_LONG
são apenas sinalizadores.Você pode encontrar aqui a fonte oficial do Android onde esses sinalizadores são definidos:
fonte
static final int LONG_DELAY = PhoneWindowManager.TOAST_WINDOW_TIMEOUT; static final int SHORT_DELAY = 2000; // 2 seconds still the same
é verdade que não temos permissão para alterar a duração do brinde. Mas se você está procurando uma alternativa e realmente precisa fazer isso com um Toast, você pode tentar isso.
Mantenha outra torrada duplicada na próxima linha
Ex:
O usuário não detectará nenhuma mudança nas transições entre 2 toasts.
Obrigado.
fonte
Você precisa definir a substituição da duração, com
setDuration
na ação, exemplo:fonte
Eu estou me perguntando por que você não usa o método setDuration () com suporte na classe Toast.java ???
fonte
Por tentativa e erro , descobri que
Toast.LENGTH_LONG
dura muito perto de 2500msfonte