当我用来Toast在屏幕上显示一些弹出文本时,它会在屏幕底部稍上方显示文本,这是默认位置.
现在我想根据我的选择在屏幕中间或某处显示它.
谁能指导我如何实现这一目标?
Pen*_*m10 395
从文档中,
定位你的吐司
标准吐司通知出现在屏幕底部附近,水平居中.您可以使用该
setGravity(int, int, int)方法更改此位置 .这接受三个参数:Gravity常量,x-position偏移和y-position偏移.例如,如果您确定吐司应该出现在左上角,您可以像这样设置重力:
Run Code Online (Sandbox Code Playgroud)toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);如果要将位置微移到右侧,请增加第二个参数的值.要轻推它,请增加最后一个参数的值.
Rym*_*nel 143
顺便说一句,如果您收到错误消息,表明您必须调用makeText,则以下代码使其工作:
Toast toast= Toast.makeText(getApplicationContext(),
"Your string here", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.TOP|Gravity.CENTER_HORIZONTAL, 0, 0);
toast.show();
Run Code Online (Sandbox Code Playgroud)
JDJ*_*JDJ 14
您可以使用以下方法自定义Toast的位置:
setGravity(int gravity, int xOffset, int yOffset)
这使您可以非常具体地了解Toast的位置.
关于xOffset和yOffset参数最有用的一点是,您可以使用它们相对于某个视图放置Toast.
例如,如果要创建一个显示在Button顶部的自定义Toast,您可以创建如下函数:
// v is the Button view that you want the Toast to appear above
// and messageId is the id of your string resource for the message
private void displayToastAboveButton(View v, int messageId)
{
int xOffset = 0;
int yOffset = 0;
Rect gvr = new Rect();
View parent = (View) v.getParent();
int parentHeight = parent.getHeight();
if (v.getGlobalVisibleRect(gvr))
{
View root = v.getRootView();
int halfWidth = root.getRight() / 2;
int halfHeight = root.getBottom() / 2;
int parentCenterX = ((gvr.right - gvr.left) / 2) + gvr.left;
int parentCenterY = ((gvr.bottom - gvr.top) / 2) + gvr.top;
if (parentCenterY <= halfHeight)
{
yOffset = -(halfHeight - parentCenterY) - parentHeight;
}
else
{
yOffset = (parentCenterY - halfHeight) - parentHeight;
}
if (parentCenterX < halfWidth)
{
xOffset = -(halfWidth - parentCenterX);
}
if (parentCenterX >= halfWidth)
{
xOffset = parentCenterX - halfWidth;
}
}
Toast toast = Toast.makeText(getActivity(), messageId, Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, xOffset, yOffset);
toast.show();
}
Run Code Online (Sandbox Code Playgroud)
nza*_*ala 11
Toast toast = Toast.makeText(test.this,"bbb", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
Run Code Online (Sandbox Code Playgroud)
小智 7
Toast mytoast= Toast.makeText(getApplicationContext(), "Toast Message", 1);
mytoast.setGravity(Gravity.CENTER_HORIZONTAL, 0, 0); // for center horizontal
//mytoast.setGravity(Gravity.CENTER_VERTICAL); // for center vertical
//mytoast.setGravity(Gravity.TOP); // for top
mytoast.show();
Run Code Online (Sandbox Code Playgroud)
以上代码将帮助您在屏幕中间显示吐司或根据您的选择,根据您的需要设置吐司重力
注意:对于此过程,您必须使用Toast对象
| 归档时间: |
|
| 查看次数: |
132804 次 |
| 最近记录: |