Cómo establecer el tiempo de visualización de Toast menos de Toast.LENGTH_SHORT

Quiero mostrar tostadas menos de Toast.LENGTH_SHORT, ya que siento que su toma alrededor de 2 segundos. Quiero mostrar tostadas sólo por medio segundo.

¿Y cuál es el intervalo de tiempo para Toast.LENGTH_SHORT y Toast.LENGTH_LONG?

Sólo hay dos valores posibles:

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

El ajuste de otros valores no funciona. Si la duración no es igual a 1 ( Toast.LENGTH_LONG ), la duración será SHORT_DELAY (2 segundos):

 long delay = immediate ? 0 : (r.duration == Toast.LENGTH_LONG ? LONG_DELAY : SHORT_DELAY); 

En fuentes de Toast escritas que

Este tiempo podría ser definido por el usuario.

Pero no puedo encontrar la manera de hacer esto.

Actualización: Hay una solución aquí: Set Toast Aparecer Longitud

Esto ha funcionado para mí

 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); 

Vea mi solución sugerida aquí . Usted básicamente llama a toast.cancel () después de un retardo especificado que es más corto que la duración de tostada estándar.

Prueba esto

 final Toast toast = Toast.makeText(getBaseContext(), "YOUR MESSAGE",Toast.LENGTH_SHORT); toast.show(); new CountDownTimer(10000, 1000) { public void onTick(long millisUntilFinished) {toast.show();} public void onFinish() {toast.cancel();} }.start(); 

Espero que esta ayuda .. Disfrute .. !!!

Para noobs he hecho la solución más simple – un método.

 public void showToastMessage(String text, int duration){ final Toast toast = Toast.makeText(getActivity(), text, Toast.LENGTH_SHORT); toast.show(); Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { toast.cancel(); } }, duration); } 

También debe importar:

 import android.os.Handler; import android.widget.Toast; 

Puede llamar a este método, por ejemplo:

 showToastMessage("your noob", 1000); 

Método anterior debería funcionar sólo en Fragmento! Si desea que funcione en Actividad, reemplace getActivity () con getApplicationContext () en el mensaje de brindis. Buena suerte desarrolladores!

funcionará.


  public void toastMessage(final String message) { this.runOnUiThread(new Runnable() { public void run() { LayoutInflater myInflator = getLayoutInflater(); View myLayout = myInflator.inflate(R.layout.custom_layout, (ViewGroup) findViewById(R.id.toastlayout)); TextView myMessage = (TextView) myLayout .findViewById(R.id.label); myMessage.setText(message); Toast toast = new Toast(getApplicationContext()); toast.setView(myLayout); toast.setDuration(100); myMessage.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL); toast.show(); } }); } 

Esto parece funcionar para mí (establecer la duración de lo que quieras):

 mActivity.runOnUiThread(new Runnable() { public void run() { Toast toast = new Toast(mActivity .getApplicationContext()); toast.setView(layout); toast.setDuration(400); toast.setGravity(Gravity.TOP|Gravity.CENTER_HORIZONTAL, 0, 0); toast.show(); } }); 
  • Cómo personalizar backgroud, color de fondo y color de texto para Toast en android
  • Contabilización del mensaje Toast de un hilo
  • Android: brindis en un hilo
  • Cómo cancelar Toast creado en un método diferente en android?
  • ¿Puedo tener un ejemplo de mostrar un brindis usando runOnUiThread.
  • Ocultar toast
  • ¿Cómo mostrar Toast de un Servicio después de que la actividad principal termine?
  • El botón de Android muestra diferentes mensajes de Toast dependen del número de clics
  • Error al mostrar tostadas
  • No se puede crear el controlador dentro de hilo que no ha llamado Looper.prepare () 3
  • Tostadas personalizadas para Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.