studio simple how custom create android toast

simple - toast android xamarin



Cómo configurar el tiempo de visualización de Toast menos que Toast.LENGTH_SHORT (8)

Quiero mostrar el brindis menos que Toast.LENGTH_SHORT, ya que siento que 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?


Esto me ha funcionado.

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


Esto parece funcionar para mí (establece la duración a 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(); } });


Para los 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;

Puedes llamar a este método por ejemplo:

showToastMessage("your noob", 1000);

El método anterior debería funcionar solo en Fragmento! Si desea que funcione en Activity, reemplace getActivity () con getApplicationContext () en el mensaje de brindis. ¡Buena suerte desarrolladores!


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 .. Disfruta .. !!!


Solo hay dos valores posibles:

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

Establecer otros valores no funciona. Si la duración no es igual a 1 ( Toast.LENGTH_LONG ), entonces 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

Esta vez podría ser definible por el usuario.

pero no puedo encontrar la manera de hacer esto.

Actualización: Hay una solución aquí: Establecer la longitud de la apariencia de la tostada


Vea mi solución sugerida here . Básicamente, usted llama a toast.cancel () después de un retraso específico que es más corto que la duración estándar de la tostada.


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


public void showMyToast(final Toast toast, final int delay) { final Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { toast.show(); } }, 0, 1000); new Timer().schedule(new TimerTask() { @Override public void run() { toast.cancel(); timer.cancel(); } }, delay); }

// cómo usarlo (MainActivity. Este es un ejemplo, podría cambiarlo usted mismo) y (En el método showMyToast (primer parámetro, segundo parámetro), el segundo parámetro es el tiempo que realmente definió así).

Toast toast=Toast.makeText(MainActivity.this, "MyToast Test", Toast.LENGTH_LONG); showMyToast(toast, 1000);