Android Toast 在屏幕上四处移动

Android Toast moves around on screen

我的 android 应用程序显示多个 Toast 消息。我最近将它安装在 Galaxy S6 运行 Android 5.1.1 上,并注意到消息最初显示在屏幕中心周围,然后它们移动到适当的位置(靠近底部,如果没有重力被指定),然后在消失之前回到初始位置。

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(); 

更新:

还有其他人遇到这个问题,知道如何解决它或知道解决方法吗?

请注意,我已经接受了 Nick 的回答,建议将 snackBar 作为解决方法。

试试这个简单的 Toast

Toast.makeText(getApplicationContext(),"Your message", Toast.LENGTH_SHORT).show();

因为供应商随产品部署的Android定制版本,Activity动画也是如此, 您可以通过扩展 Toast class 并提供您自己的动画和样式或使用开源库来显示吐司消息,在所有设备上实现所需的行为,为活动设置自定义动画,在所有设备上创建恒定动画设备。

您的问题要求修复或解决方法。最简单的解决方法(在我看来)也是最好的选择,因为它会让您使用更现代的组件:切换到小吃店。

简单的小吃店:

//on a fragment you can simply use getView(), otherwise give it the root view of your
//layout so that the snackbar can use it to find context

Snackbar.make(getView(), "The toast text", Snackbar.LENGTH_SHORT).show();

为了兼容性,它在支持设计库中。

这是一个小吃店:

gradle中可以包含的一些支持/设计库是

compile 'com.android.support:design:23.1.1'
compile 'com.android.support:support-v4:23.1.1'
compile 'com.android.support:appcompat-v7:23.1.1'