21

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

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

问:我可以相信任何时候我onClickListener为父元素实现,它的所有子元素都会对点击事件做出反应吗?

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

4

1 回答 1

30

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

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

于 2011-11-15T10:45:33.780 回答