使父元素可点击是不是也会使所有子元素也可点击?

Posted

技术标签:

【中文标题】使父元素可点击是不是也会使所有子元素也可点击?【英文标题】:Does making parent clickable make all child element clickable as well?使父元素可点击是否也会使所有子元素也可点击? 【发布时间】:2011-12-29 10:04:31 【问题描述】:

有一个LinearLayout 有很多子元素。当用户触摸这些子元素中的任何一个时,将调用相同的方法。为了不为每个元素实现相同的onClickListener,我为父LinearLayout ONLY 实现了onClickListener

现在,当我单击父布局边界内的任意位置时,将调用所需的方法,就像我为所有子元素实现了侦听器一样。

问:我是否可以相信,每当我为父级实现 onClickListener 时,它的所有子元素都会对点击事件做出反应?

问:如果任何子元素都有自己的onClickListener,会发生什么情况?是否会发生碰撞或单击该元素只会触发其自己的单击事件?

【问题讨论】:

按下的布局应该传播到它的所有子级 【参考方案1】:

您用第二个问题回答了第一个问题。 clickEvent 将被传递到布局层次结构中的最低子元素。如果这个元素没有 onClick 行为,它将把事件向上传递给它的父元素,直到事件被处理。

因此,您可以将 LinearLayout 视为您的 onClick 行为的一个块。 如果您在布局内创建另一个可点击元素,请确保将其设置得足够大,以减少用户错过正确项目的机会。

【讨论】:

以上是关于使父元素可点击是不是也会使所有子元素也可点击?的主要内容,如果未能解决你的问题,请参考以下文章

关闭 UIImagePickerController 也会使父级消失

怎样能使父元素随子元素的高度变化而变化(css样式

点击子元素也会触发绑定到 LI 的事件

使父元素扩展以包含相对定位的子元素?

事件冒泡 比bubble

CSS弹性盒子布局flex