In Android möchte ich eine Toastnachricht am unteren Bildschirmrand anzeigen. Ich habe Folgendes versucht:
Toast.makeText(test.this,"bbb", Toast.LENGTH_LONG).show();
Es funktioniert nicht, wie mache ich es richtig?
In Android möchte ich eine Toastnachricht am unteren Bildschirmrand anzeigen. Ich habe Folgendes versucht:
Toast.makeText(test.this,"bbb", Toast.LENGTH_LONG).show();
Es funktioniert nicht, wie mache ich es richtig?
Antworten:
Anzeigen des Toasts in der Mitte des Bildschirms.
Toast toast = Toast.makeText(test.this,"bbb", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
Positionieren Sie Ihren Toast
Eine Standard-Toastbenachrichtigung wird am unteren Rand des Bildschirms angezeigt und horizontal zentriert. Sie können diese Position mit der setGravity(int, int, int)
Methode ändern . Dies akzeptiert drei Parameter: eine Gravity
Konstante, einen x-position
Versatz und einen y-position
Versatz.
Wenn Sie beispielsweise festlegen, dass der Toast in der oberen linken Ecke angezeigt werden soll, können Sie die Schwerkraft wie folgt einstellen:
toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);
Wenn Sie die Position nach rechts verschieben möchten, erhöhen Sie den Wert des zweiten Parameters. Erhöhen Sie den Wert des letzten Parameters, um ihn nach unten zu verschieben.
Layoutdatei für benutzerdefinierten Toast
<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" />
Java-Datei für benutzerdefinierten Toast auf das Klickereignis der Schaltfläche
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();
}
});
}
}}
Anzeigen / Einstellen der Textgravitation in der Mitte (horizontal) in 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()
}
Der folgende Code kann zum Anzeigen der Toast-Nachricht verwendet werden
Toast tt = Toast.makeText(MainActivity.this,"Your text displayed here", Toast.LENGTH_LONG);
tt.setGravity(Gravity.CENTER, 0, 0);
tt.show();
Der folgende Code hat bei mir funktioniert.
Toast.makeText(this, "Toast in center", Toast.LENGTH_SHORT).setGravity(Gravity.CENTER,0,0).show();