Toast.makeText(...)。show()有时会错位

时间:2011-10-14 12:19:11

标签: android alignment toast android-context

我正在使用Toast.makeText来显示对话框的结果,并且有一个奇怪的问题:文本显示在应该保留它的框架上方,如下所示:

消息未与帧错位。请更好地对齐它。 [ _ __ _ __ _ __ _ __ _ __ < EM> _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ ___

我通常使用类似

的代码
Toast bread = Toast.makeText(getContext(), R.string.message, Toast.LENGTH_LONG);
bread.show();

来自对话框。我听说不好的上下文有时候会导致通货膨胀问题,但是getOwnerActivity()会返回null,所以就这样了。在任何情况下,我都认为getContext()会提供在构造时传递的上下文,无论如何都是活动。

有什么建议吗?

4 个答案:

答案 0 :(得分:21)

你可以试试这个:

Toast bread = Toast.makeText(getApplicationContext(), R.string.message, Toast.LENGTH_LONG);
bread.show();

答案 1 :(得分:3)

bread.setGravity(5,5,5);

尝试改变这些值,直到找到准确的位置。

但是使用Gravity.CENTER和其他常量是优先的方式..

答案 2 :(得分:1)

如果您在活动中创建吐司,则应使用:thisMyActivityName.this作为上下文参数。

答案 3 :(得分:1)

尝试使用,

<supports-screens
   android:largeScreens="true"
   android:normalScreens="true"
   android:smallScreens="true"
   android:anyDensity="true" /> 

在您的清单文件中。