当我使用Toast在屏幕上显示一些弹出文本时,它会将文本显示在屏幕底部上方一点的位置,这是默认位置。

现在我想把它显示在屏幕中间,或者根据我的选择显示在某个地方。

有人能指导我如何实现这个目标吗?


当前回答

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

其他回答

如果你得到一个指示你必须调用makeText的错误,下面的代码将修复它:

Toast toast= Toast.makeText(getApplicationContext(), 
"Your string here", Toast.LENGTH_SHORT);  
toast.setGravity(Gravity.TOP|Gravity.CENTER_HORIZONTAL, 0, 0);
toast.show();

解决方案

fun Context.showToastOnTOP(message: String) = Toast.makeText(this, message, Toast.LENGTH_SHORT)
    .apply { setGravity(Gravity.TOP, 0, 0); show() }

fun Context.showToastOnBOTTOM(message: String) = Toast.makeText(this, message, Toast.LENGTH_SHORT)
    .apply { setGravity(Gravity.BOTTOM, 0, 0); show() }

重要提示:重力只有在应用程序的最大目标为29或更少时才能工作。

冷静药丸:)

Toast toast = Toast.makeText(this, "Custom toast creation", Toast.LENGTH_SHORT);
    toast.setGravity(Gravity.BOTTOM | Gravity.RIGHT,0,0);
    toast.show();
 Toast toast = Toast.makeText(test.this,"bbb", Toast.LENGTH_LONG);

 toast.setGravity(Gravity.CENTER, 0, 0);

 toast.show();

//这是对抗任何错误的最佳解决方案

改变土司颜色、位置和底色的方法是:

Toast toast=Toast.makeText(getApplicationContext(),"This is advanced toast",Toast.LENGTH_LONG);
toast.setGravity(Gravity.BOTTOM | Gravity.RIGHT,0,0);
View view=toast.getView();
TextView  view1=(TextView)view.findViewById(android.R.id.message);
view1.setTextColor(Color.YELLOW);
view.setBackgroundResource(R.color.colorPrimary);
toast.show();

逐行解释:https://www.youtube.com/watch?v=5bzhGd1HZOc