gpt4 book ai didi

android - 如何在不重叠的情况下将 toast 锚定在 View 上?

转载 作者:行者123 更新时间:2023-11-30 00:39:24 26 4
gpt4 key购买 nike

背景

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

我想知道的是,如何将 toast 正确地放置在 View 附近(如果在屏幕的上半部分,最好放在下方,如果在屏幕的下半部分,则最好放在上方),这样它们就不会相互重叠其他,无论 View 的位置和大小如何(当然,除非真的不可能,因为 View 占用太多空间)。

问题

我知道这个问题有各种各样的问题,但都将 toast 设置为显示在 View 下方,或者手动设置其位置,而不考虑两者的大小。

我发现了什么

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

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

然而,长按操作项时出现的 toast 可能会锚定到操作项的 View 中,但我不知道它在那里是如何工作的。

我还尝试了来自 Android-Arsenal website 的许多库,但所有这些要么用于设计 toast 的样式,要么制作不是 toast 的东西,有时甚至效果不佳。

问题

是否有一种通用方法可以在 Toasts 上使用用于 Popup 的相同方法,以便将其锚定到 View 而不重叠它?

最佳答案

你可以像这样在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); 

并尝试其他值..

另一种方法是,您应该在布局下创建一个像 View 一样的自定义 toast

检查这个库

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

关于android - 如何在不重叠的情况下将 toast 锚定在 View 上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42783387/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com