Comment afficher Toast au centre de l’écran

Dans Android, je veux afficher un message de pain grillé en bas de l’écran, j’ai essayé ceci:

Toast.makeText(test.this,"bbb", Toast.LENGTH_LONG).show(); 

Ça ne marche pas, comment le faire correctement?

Pour afficher le pain grillé au centre de l’écran.

 Toast toast = Toast.makeText(test.this,"bbb", Toast.LENGTH_LONG); toast.setGravity(Gravity.CENTER, 0, 0); toast.show(); 

Positionnement de votre pain grillé

Une notification de toast standard apparaît en bas de l’écran, centrée horizontalement. Vous pouvez changer cette position avec la setGravity(int, int, int) . Cela accepte trois parameters: une constante de Gravity , un décalage de la x-position et un décalage de la y-position .

Par exemple, si vous décidez que le toast doit apparaître dans le coin supérieur gauche, vous pouvez définir la gravité comme ceci:

 toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0); 

Si vous souhaitez déplacer la position vers la droite, augmentez la valeur du deuxième paramètre. Pour le décaler, augmentez la valeur du dernier paramètre.

Fichier de mise en page pour le toast personnalisé

   

Fichier .java pour un toast personnalisé sur l’événement de clic du bouton

 public class MainActivity extends Activity { private Button button; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); button = (Button) findViewById(R.id.buttonToast); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // get your custom_toast.xml ayout LayoutInflater inflater = getLayoutInflater(); View layout = inflater.inflate(R.layout.custom_toast, (ViewGroup) findViewById(R.id.custom_toast_layout_id)); // set a dummy image ImageView image = (ImageView) layout.findViewById(R.id.image); image.setImageResource(R.drawable.ic_launcher); // set a message TextView text = (TextView) layout.findViewById(R.id.text); text.setText("Button is clicked!"); // Toast... Toast toast = new Toast(getApplicationContext()); toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0); toast.setDuration(Toast.LENGTH_LONG); toast.setView(layout); toast.show(); } }); } 

}

 Toast toast = new Toast(context); toast.setGravity(Gravity.FILL_HORIZONTAL | Gravity.BOTTOM, 0, 0); toast.show(); 

Dans Xamarin.Android, cela affiche des toasts au centre de l’écran:

  Toast toast = Toast.MakeText(ApplicationContext, "bbb", ToastLength.Long); toast.SetGravity(GravityFlags.Center, 0, 0); toast.Show(); 

Le code ci-dessous a fonctionné pour moi.

 Toast.makeText(this, "Toast in center", Toast.LENGTH_SHORT).setGravity(Gravity.CENTER,0,0).show();