背景

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

我想知道的是如何在视图附近正确放置一个吐司(假设更喜欢放在屏幕的上半部分下方,而放在下半部分上方),这样它们就不会彼此重叠,不与视图的位置和大小无关(当然,除非视图实际上占用太多空间,否则除非真的不可能)。

问题

我知道这个问题有很多问题,但是所有设置都将烤面包显示在视图下方,或者手动设置烤面包的位置,而不考虑这两个对象的大小。

我发现了什么

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


here,它没有考虑烤面包的大小
here,它允许您手动设置烤面包的位置,因此它们仍然可以彼此重叠。


但是,可能是通过长时间单击某个动作项而出现的吐司被固定在该动作项的视图上,但我没有发现它在那里如何工作。

我还尝试了Android-Arsenal website中的许多库,但是它们全部都是为了装饰敬酒,或者制作不是敬酒的东西,有时甚至不能很好地工作。

问题

是否有通用的方法可以在Toasts上使用与Popups相同的方法,以便将其锚定在视图上而不重叠?

最佳答案

您可以像这样在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,例如view

检查这个图书馆

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

07-28 02:22