为什么Toast.setGravity()不起作用

时间:2016-10-03 09:09:26

标签: android android-toast

大家好,我有2个像这样的Toast版本

版本1:

Toast.makeText(getApplicationContext(),"hello",Toast.LENGTH_LONG).setGravity(Gravity.CENTER,0,0).show();

版本2:

Toast t = Toast.makeText(getApplicationContext(),"hello",Toast.LENGTH_LONG);
      t.setGravity(Gravity.CENTER,0,0);
      t.show();

版本2工作正常但版本1不正常。 它给出错误无法解析方法show()。 这里出了什么问题?

当我编写版本1删除setGravity()方法然后它工作正常

Toast.makeText(getApplicationContext(),"hello",Toast.LENGTH_LONG).show();
你能解释一下吗。

2 个答案:

答案 0 :(得分:4)

Toast.makeText(this, getString(R.string.back_not_allowed), Toast.LENGTH_SHORT)会返回Toast个实例,因此您可以在其上调用show()函数,但Toast.makeText(this, getString(R.string.back_not_allowed), Toast.LENGTH_SHORT).show()会返回void,因此您无法使用setGravity(Gravity.CENTER,0,0) }} 超过它。这就是你必须在变量中获取Toast的实例然后使用它的原因。

答案 1 :(得分:1)

我只是在尝试进行书中的扩展挑战时尝试这样做,Android Programming: The Big Nerd Ranch

然后我查了官方文档,发现它现在被忽略了。

official docs 开始,这是在较新的 Android 版本上运行时的无操作(无操作)。

这些是自原始帖子以来发生的变化。

gravity.setGravity is no-op