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?
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?
Réponses:
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();
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 Gravity
constante, un x-position
offset et un y-position
offset.
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.
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();
}
});
}
}
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()
}
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();
Le code ci-dessous a fonctionné pour moi.
Toast.makeText(this, "Toast in center", Toast.LENGTH_SHORT).setGravity(Gravity.CENTER,0,0).show();