Comment afficher Toast au centre de l'écran

89

Sous Android, je souhaite afficher un message toast en bas de l'écran, j'ai essayé ceci:

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

Cela ne fonctionne pas, comment puis-je le faire correctement?

tedris
la source
Cela n'avait aucun sens pour moi. Qu'essayez-vous de dire exactement?
SudoRahul
1
mettre en forme du texte, une question correcte, un exemple de code qu'avez-vous essayé, avez-vous même essayé d'utiliser le moteur de recherche?
deadfish
Les personnes qui modifient cette question la modifient mal ... La question est claire, le corps du message ne l'est pas ... veuillez le modifier à nouveau. Ce qu'il veut demander est "Comment afficher le message Toast au centre de l'écran", le message est "Dans Android, je veux afficher un message Toast au centre de l'écran, pour afficher un message toast en bas de l'écran J'essaye ce Toast.makeText (test.this, "bbb", Toast.LENGTH_LONG) .show (); Comment placer un message Toast au milieu de l'écran? " Je pense que c'était quelque chose comme ça, pas comme il a été édité ...
Elsanty
J'adore cet article. C'est pourquoi je le partage. Exemple de toast Android - cliquez ici
Athira Reddy

Réponses:

271

Pour afficher le toast au centre de l'écran.

Toast toast = Toast.makeText(test.this,"bbb", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
Ajay S
la source
Si quelqu'un veut ajuster la position davantage, le troisième argument de setGravity prend le décalage yAxis en pixels.
Sagar
4

Positionner votre toast

Une notification toast standard apparaît en bas de l'écran, centrée horizontalement. Vous pouvez changer cette position avec la setGravity(int, int, int) méthode. Cela accepte trois paramètres: une Gravityconstante, un x-positionoffset et un y-positionoffset.

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 pousser vers le bas, augmentez la valeur du dernier paramètre.

Nzala
la source
2

Dans Xamarin.Android, cela affiche du pain grillé au centre de l'écran:

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

Fichier de mise en page pour toast personnalisé

<ImageView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginRight="5dp" />

<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:textColor="#000" />

Fichier .java pour un toast personnalisé lors de 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();
        }
    });
}

}

Jahan Gagan
la source
1
Toast toast = new Toast(context);
        toast.setGravity(Gravity.FILL_HORIZONTAL | Gravity.BOTTOM, 0, 0);
toast.show();
Amardeep
la source
0

Affichage / réglage de la gravité du texte au centre (horizontalement) en koltin

fun Context.longToast(msg: String) {
    Toast.makeText(this, msg, Toast.LENGTH_LONG)
        .apply {
           view.findViewById<TextView>(android.R.id.message)?.gravity = Gravity.CENTER
        }
        .show()
}
Aklesh Singh
la source
0

Le code suivant peut être utilisé pour afficher le message Toast

Toast tt = Toast.makeText(MainActivity.this,"Your text displayed here", Toast.LENGTH_LONG);
tt.setGravity(Gravity.CENTER, 0, 0);
tt.show();
Anand Kumar
la source
-2

Le code ci-dessous a fonctionné pour moi.

Toast.makeText(this, "Toast in center", Toast.LENGTH_SHORT).setGravity(Gravity.CENTER,0,0).show();
Pawan Dubey
la source
setGravity ne renvoie pas d'objet Toast. void setGravity (int gravity, int xOffset, int yOffset)
wrkwrk