Toast调整显示位置
2018-10-12 本文已影响36人
蓝不蓝编程
背景:
Toast默认显示在界面底部,因这位置在部分界面会遮挡界面元素,故需要调整位置。
![](https://img.haomeiwen.com/i6169789/2e0ff78ecfb89686.png)
解决方案:
1.显示在顶部
private void showToast(Context context,String text) {
Toast toast = Toast.makeText(context,text,Toast.LENGTH_SHORT);
toast.setGravity(Gravity.TOP,0,0);
toast.show();
}
![](https://img.haomeiwen.com/i6169789/403bb74a7fb6cfa8.png)
2.显示在中间
private void showToast(Context context,String text) {
Toast toast = Toast.makeText(context,text,Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER,0,0);
toast.show();
}
![](https://img.haomeiwen.com/i6169789/9d9fb57ab00e5ff0.png)
3.显示在垂直方向1/3处
private void showToast(Context context, String text) {
Toast toast = Toast.makeText(context, text, Toast.LENGTH_SHORT);
WindowManager windowManager = (WindowManager) context.getSystemService(WINDOW_SERVICE);
Point size = new Point();
windowManager.getDefaultDisplay().getSize(size);
toast.setGravity(Gravity.TOP, 0, size.y / 3);
toast.show();
}
![](https://img.haomeiwen.com/i6169789/666864354cfc3a4a.png)
4.显示在垂直方向2/3
private void showToast(Context context, String text) {
Toast toast = Toast.makeText(context, text, Toast.LENGTH_SHORT);
WindowManager windowManager = (WindowManager) context.getSystemService(WINDOW_SERVICE);
Point size = new Point();
windowManager.getDefaultDisplay().getSize(size);
toast.setGravity(Gravity.BOTTOM, 0, size.y / 3);
toast.show();
}
![](https://img.haomeiwen.com/i6169789/949efce1139db2b1.png)
![](https://img.haomeiwen.com/i6169789/c56af117f2c1d072.jpg)