如何将Toast锚定到视图而不重叠它们?

时间:2017-03-14 10:25:05

标签: android toast

背景

弹出窗口可以锚定到视图,但Toast缺少此API。

我想知道的是,如何在视图附近正确定位吐司(假设在屏幕的上半部分放在下面,如果在下半部分则放在上面),这样它们就不会重叠另外,无论视图的位置和大小(除非真的不可能,因为视图占用太多空间,当然)。

问题

我知道这个问题存在各种各样的问题,但是所有问题都要设置在视图下方,或者手动设置其位置,而不考虑它们的大小。

我发现了什么

目前我找到了下一个解决方案:

  • here,不考虑吐司的大小
  • here,它允许您手动设置吐司的位置,因此它们仍然可以相互重叠。

然而,可能是长按一个动作项目出现的吐司被锚定到动作项目的视图,但我没有找到它在那里是如何工作的。

我也尝试了Android-Arsenal website中的许多库,但是它们都是为了设计祝酒风格,或者制作不是敬酒的东西,有时甚至不能很好地工作。

问题

是否有一种通用方法可以在Toasts上使用与弹出窗口相同的方法,以便将其锚定到视图而不重叠它?

1 个答案:

答案 0 :(得分:1)

你可以像这样设置Android中的Toast重力

Toast toast = Toast.makeText(test.this,"bbb", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();

而是围绕给出int值。喜欢

toast.setGravity(5,6,5); 

并尝试其他值..

另一种方法是,您应该在布局

下创建自定义Toast视图

检查此库

https://github.com/sephiroth74/android-target-tooltip