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