Toasts

Como se muestra en la documentación de Google sobre Material Design.

Android también provee toasts, principalmente usadas para mensajes del sistema. Los toasts son similares a los snackbars a diferencia de que no contienen acciones y no pueden ser eliminadas.

¿Cómo se añade?

Crea una instancia Toast con el método make(), posterior mente utiliza el método show() para que se muestre.

Toast.makeText(context, "No network connection.", duration).show();  

Duración

Para especificar cuanto tiempo el Toast será visible en la pantalla utiliza el parámetro duration en el método makeText(), o el método setDuration.

// Únicamente puedes utilizar estas dos constantes
duration = Toast.LENGTH_SHORT; // 2000 milisegundos  
duration = Toast.LENGTH_LONG; // 3500 milisegundos

toast.setDuration(duration);  

Cancelar

Para ocultar el Toast manualmente en cualquier momento utiliza el método cancel().

Toast toast= Toast.make(view, text, duration).show();  
toast.cancel(); // oculta la tostada!  

Posicionamiento

Para cambiar la posición del Toast usa el método setGravity().

int gravity = Gravity.CENTER; // Posición del toast  
int xOffset = 0; // Offset horizontal desde la gravedad actual  
int yOffset = 0; // Offset vertical desde la gravedad actual

Toast toast= Toast.make(view, text, duration);  
toast.setGravity(gravity, xOffset, yOffset);  

¿Cómo se estiliza?

Con código

// Crea la instancia
Toast toast = Toast.makeText(context, text, duration);

// Configura el color del mensaje
TextView textView= (TextView) toast.getView().findViewById(android.R.id.message);  
textView.setTextColor(Color.YELLOW);

// Configura el color de fondo
toast.getView().setBackgroundColor(getResources().getColor(R.color.indigo));  

Con una vista personalizada

I. Decalara tu vista personalizada dentro de cualquier archivo de layout, layout.xml.

<?xml version="1.0" encoding="utf-8"?>  
<TextView  
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/txtMessage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableStart="@drawable/ic_report_problem"
        android:drawablePadding="8dp"
        android:paddingTop="8dp"
        android:paddingBottom="8dp"
        android:paddingLeft="16dp"
        android:paddingRight="16dp"
        android:gravity="center"
        android:textColor="@android:color/white"
        android:textSize="16dp"
        android:text="No connection."
        android:background="@color/indigo"/>

II. Configura tu vista personalizada Toast con el método setView().

// Crea la instancia
Toast toast = new Toast(getApplicationContext());

// Infla la vista personalizada
View view = getLayoutInflater().inflate(R.layout.toast_view, null);

// Configura la vista
toast.setView(view);

// Configura la duración
toast.setDuration(Toast.LENGTH_LONG);

// Configura la posición
int margin = getResources().getDimensionPixelSize(R.dimen.toast_vertical_margin);  
toast.setGravity(Gravity.BOTTOM | Gravity.CENTER_VERTICAL, 0, margin);

// Muestra la tostada
toast.show();  

Escrito originalmente por Yakiv Mospan en MaterialDoc