如何禁用 android 布局的一种视图以便不发生点击事件?

Posted

技术标签:

【中文标题】如何禁用 android 布局的一种视图以便不发生点击事件?【英文标题】:how to disable one view of android layout so that click events do not occur? 【发布时间】:2015-12-12 01:44:24 【问题描述】:

我有两个相对的布局。一个是主页,另一个是默认隐藏的滑块菜单。当我打开第二个布局时,它会出现在主布局上,但问题是。我在滑块菜单中有一些可点击的按钮。如果我单击该单击事件,那么如果按钮正好位于滑动视图按钮的后面,则主视图按钮也会发生单击事件。我怎样才能确保后面的视图被禁用?类似于 html 中的 z-index

【问题讨论】:

你能贴一些代码吗? 【参考方案1】:

如果我理解正确,您可以使用yourViewUnderneath.requestDisallowInterceptTouchEvent(true) 禁用下方的视图拦截触摸事件。如果位于顶部的视图是父视图的子视图,这将起作用。

你可以在这里阅读:https://developer.android.com/reference/android/view/ViewGroup.html#requestDisallowInterceptTouchEvent%28boolean%29

如果底层视图不是其上出现的视图的父级,那么您可以简单地使用yourViewUnderneath.setClickable(false)

【讨论】:

【参考方案2】:

如果第二个布局是一个滑块,我认为问题在于您在第二个布局上没有 ClickListener 的情况下单击某个点,然后,第一个布局管理点击。因此,您可以将第一个 View 的可见性设置为 GONE 或使所有布局可点击并管理点击的 View 的 id。

【讨论】:

以上是关于如何禁用 android 布局的一种视图以便不发生点击事件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android 中禁用 SlidingDrawer 后面的布局?

如何在 android 视图上禁用所有用户输入(点击、触摸)

点击 Android/Java 列表视图项时,如何禁用单击声音?

如何禁用 Kotlin Android 扩展插件生成合成视图属性

如何禁用Android按钮?

Android:如何禁用 ListView?