如何在Android中更改Toast的位置?
当我使用Toast在屏幕上显示一些弹出文本时,它会在屏幕底部稍上方显示文本,这是默认位置。
现在我想根据我的选择在屏幕中间或某处显示它。
谁能指导我如何实现这一目标?
UMAR asked 2019-02-20T14:13:36Z
8个解决方案
362 votes
从文档中,
定位你的吐司
标准吐司通知出现在屏幕底部附近, 水平居中。 你可以改变这个位置 toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);方法。 这接受三个参数:a Gravity常数,偏移量为x-position,偏移量为y-position。
例如,如果您确定吐司应该出现在 左上角,您可以像这样设置重力:
toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);
如果要将位置微移到右侧,请增加值 第二个参数。 要轻推它,增加最后一个的值 参数。
Pentium10 answered 2019-02-20T14:14:39Z
126 votes
顺便说一句,如果您收到错误消息,表明您必须调用makeText,则以下代码使其工作:
Toast toast= Toast.makeText(getApplicationContext(),
"Your string here", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.TOP|Gravity.CENTER_HORIZONTAL, 0, 0);
toast.show();
Rymnel answered 2019-02-20T14:15:08Z
12 votes
您可以使用以下方法自定义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 i