我的Android应用程序显示多个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();
更新
其他人遇到此问题,知道如何解决或知道解决方法吗?
请注意,我已经接受了Nick的回答,建议使用snackBar作为解决方法。
答案 0 :(得分:7)
您的问题要求修复或解决方法。最简单的解决方法(在我看来)也是最好的选择,因为它会让您使用更现代的组件:切换到小吃吧。
简单小吃:
//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'
答案 1 :(得分:3)
这是因为供应商使用他们的产品部署的定制版Android,对于Activity动画也是如此, 您可以通过扩展Toast类并提供自己的动画和样式或使用开源库显示Toast消息来在所有设备上实现所需的行为,因为为活动设置自定义动画的活动会在所有设备上创建常量动画。
答案 2 :(得分:-2)
尝试这个简单的Toast
Toast.makeText(getApplicationContext(),"Your message", Toast.LENGTH_SHORT).show();