Android路由/气泡事件,因为控件正在使用onClick事件

Android路由/气泡事件,因为控件正在使用onClick事件,android,events,onclick,routes,event-bubbling,Android,Events,Onclick,Routes,Event Bubbling,我有一个带有ImageView和TextView的自定义视图,并为我的自定义视图实现了onClickListener。 问题是,ImageView正在使用onClick事件(我只希望用户能够单击我的控件,无论在哪里)。我也可以听一下图像/文本视图的一键,但对我来说它似乎很脏 有没有办法在Android中冒泡/路由事件?或者可能是另一个好的解决方案?您是否在自定义视图中设置了onClickListener 将自定义视图设置为可单击 我不建议在子视图中设置任何单击侦听器 它现在可以工作了吗?View

我有一个带有ImageView和TextView的自定义视图,并为我的自定义视图实现了onClickListener。 问题是,ImageView正在使用onClick事件(我只希望用户能够单击我的控件,无论在哪里)。我也可以听一下图像/文本视图的一键,但对我来说它似乎很脏


有没有办法在Android中冒泡/路由事件?或者可能是另一个好的解决方案?

您是否在自定义视图中设置了
onClickListener

将自定义视图设置为可单击

我不建议在子视图中设置任何单击侦听器

它现在可以工作了吗?

View.onClick()
事件不会冒泡。两种可能的解决办法:

  • 在子视图上注册,然后通过调用父视图上的
    performClick()
    传递事件

  • 使用哪个冒泡:只需在子视图的
    onTouch()
    方法中返回
    false
    。这是更多的工作,因为为了模拟点击,您必须考虑触地和抬起


  • 谢谢你的解释。我试试你和佩德罗斯的答案!如果父项由子项覆盖,则这是一个可用的解决方案。仅仅设置“clickable”并不能解决这些问题,但如果可以访问父对象的某些部分,这会有所帮助。以下是对我有效且需要最少代码的内容: