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 使用对话框消除完整操作

java - 在多模块项目上运行 Proguard 作为 "one piece"

Android - ArrayAdapter 不工作 - NullPointerException

android - 带有滑动 TabLayout 的 ViewPager 中的 Listview - 高度问题

java - 使用Rxjava作为EventBus时如何从事件中获取参数

java - 在Android中创建字节数组的ArrayList

c# - C#-事件订阅和变量覆盖

python - 更改变量值时的 PyQt 事件

c# - 添加EventHandler += EventHandler有什么作用?

android - 为什么不保留所有 TextView 及其状态?