【问题标题】:Android route / bubble events because a control is consuming the onClick eventAndroid 路由/气泡事件,因为控件正在使用 onClick 事件
【发布时间】:2011-06-11 02:33:53
【问题描述】:

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

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

【问题讨论】:

    标签: android events onclick routes event-bubbling


    【解决方案1】:

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

    将您的自定义视图设置为可点击。

    我不建议在子视图中设置任何点击监听器。

    现在可以用了吗?

    【讨论】:

      【解决方案2】:

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

      1. 在您的子视图上注册OnCLickListener,然后通过在父视图上调用performClick() 来传递事件。

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

      【讨论】:

      • 感谢您的解释。我会尝试结合你和佩德罗斯的答案!
      • 如果父母被孩子覆盖,那么这是一个可用的解决方案。简单地设置“可点击”对于这些情况是行不通的,但如果父级的某些部分是可访问的,则会有所帮助。这对我有用,并且需要最少的代码:stackoverflow.com/a/18959830/189764
      猜你喜欢
      • 1970-01-01
      • 2017-01-17
      • 2018-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      相关资源
      最近更新 更多