如何禁用 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 列表视图项时,如何禁用单击声音?