android - 使 View 位于重叠的 View 后面以响应 Tap 事件

标签 android events android-view

我有两个 ImageViewiv1iv2,其中 iv2 重叠在 iv1 上20dp

现在,如果我恰好在 iv1 可见的区域点击,它会响应事件,但如果我将 iv2 的可见性设置为 GONEINVISIBLE 并使其成为 setEnabled(false),我可以完全看到 iv1,但仍然只是其区域的一部分(在 iv2 后面可见)响应点击事件。

如果重叠 View 被禁用或不可见,如何使完整的 ImageView 响应点击?

最佳答案

这是因为 iv2 在 iv1 前面。尝试调用 iv1.bringToFront();。这会将 iv1 放在 iv2 的前面,并且它的整个区域都变成了点击响应。

如果以后你想改变 iv2 的可见性,你必须调用 iv2.bringToFront(); 来使它们像设置 iv2 之前一样不可见。

如果你想从一开始就将 iv1 放在 iv2 之前,你必须将它的定义放在 iv2 之后的 xml 文件中。 View 将按照它们在布局 xml 文件中出现的顺序绘制。所以第一个 View 在底部,最后一个在顶部。

关于android - 使 View 位于重叠的 View 后面以响应 Tap 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11145815/

相关文章:

android - 仅显示操作栏的下半部分(并且在状态栏后面)

android - Kotlin : On camera move end

java - 如何正确缩放给定坐标以适应 View 的边界而不失真?

android - 如何处理硬件键盘输入 View ?

android - 可移动 float 操作按钮移出屏幕

android - 仅向一项服务发送 Intent

Android - 无法将图库图像设置为 ImageView

java - 将数据从数据库检索到我的应用程序(不工作)

c - 使用事件驱动套接字时如何生成网络事件 FD_WRITE?

javascript - jQuery 模糊事件未在隐藏元素上触发