我的安卓应用程序显示了几个 Toast 消息。我最近在运行 Android 5.1.1 的 Galaxy S6 上安装了它,并注意到这些消息最初会显示在屏幕中心附近,然后移动到正确的位置(如果没有指定重力,则靠近底部),最后在淡出之前回到原来的位置。
Context context = getApplicationContext();
String newMsg = getString(R.string.wild_card_msg);
Toast mToast = Toast.makeText(context, newMsg, Toast.LENGTH_LONG);
mToast.setGravity(Gravity.CENTER, 0, 0);
mToast.show();
更新:
- 我已经升级了支持库,并将编译SDK和目标SDK设置为最新的API。但是这并没有解决问题。
- 我已经删除了所有的.setGravity()调用,但没有改变。
- 我注意到Toast消息在首次安装后的第一次执行中表现正常(无论是通过USB调试模式还是从PlayStore下载),但在所有后续运行中问题会再次出现。
- 我还发现,如果我触摸屏幕(任何地方),我的Toast消息会立即消失。我认为Toast显示不受用户交互的影响。
有没有其他人遇到过这个问题,知道如何修复它或者知道一个解决方法?
请注意,我接受了Nick的答案,提出使用snackBar作为临时解决方法。