当我使用Toast在屏幕上显示一些弹出文本时,它会将文本显示在屏幕底部上方一点的位置,这是默认位置。
现在我想把它显示在屏幕中间,或者根据我的选择显示在某个地方。
有人能指导我如何实现这个目标吗?
当我使用Toast在屏幕上显示一些弹出文本时,它会将文本显示在屏幕底部上方一点的位置,这是默认位置。
现在我想把它显示在屏幕中间,或者根据我的选择显示在某个地方。
有人能指导我如何实现这个目标吗?
当前回答
如果你得到一个指示你必须调用makeText的错误,下面的代码将修复它:
Toast toast= Toast.makeText(getApplicationContext(),
"Your string here", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.TOP|Gravity.CENTER_HORIZONTAL, 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();
从文档来看,
Positioning your Toast A standard toast notification appears near the bottom of the screen, centered horizontally. You can change this position with the setGravity(int, int, int) method. This accepts three parameters: a Gravity constant, an x-position offset, and a y-position offset. For example, if you decide that the toast should appear in the top-left corner, you can set the gravity like this: toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0); If you want to nudge the position to the right, increase the value of the second parameter. To nudge it down, increase the value of the last parameter.
Toast toast = Toast.makeText(test.this,"bbb", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
//这是对抗任何错误的最佳解决方案
从文档中可以看到:
警告:从Android Build开始。VERSION_CODES#R,用于针对API级别构建的应用程序。如果VERSION_CODES#R或更高,则此方法(setGravity)在文本toast上调用时是一个无操作。
这意味着setGravity不能再在API 30+中使用,必须找到另一个来实现所需的行为。
改变土司颜色、位置和底色的方法是:
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