即使 Gravity 设置为 TOP|LEFT,Toast 也会出现在底部

问题描述

这是与 Toast 相关的所有代码(在 mainActivity 中)。主要(也是唯一的)布局是 LinearLayout 尽管我认为这无关紧要,因为它不是自定义 Toast。

Toast taux = Toast.makeText(getApplicationContext(),"test",Toast.LENGTH_SHORT);
taux.setGravity(Gravity.TOP|Gravity.LEFT,0);
taux.show();

事情是,如果我将重力设置为任何其他选项(结合代码中的两个选项或仅一个选项)都没有关系,它仍然只会出现在底部居中(认位置)上。

解决方法

documentation

警告:从 Android Build.VERSION_CODES#R 开始,对于以 API 级别 Build.VERSION_CODES#R 或更高级别为目标的应用,当调用文本 toast 时,此方法无效。

Snackbar is recommended

请注意,当应用处于前台时,Snackbar 更适合用于发送简短消息。

Toast.setGravity() 不能再在 API 30+ 中完成工作,如果您的应用在前台,建议使用 Snackbar 代替 Toast。