一键式事件将所有子视图置于按下状态

时间:2011-02-10 11:05:43

标签: android events view touch

毫无疑问,这是由我非常不正统的布局引起的 - 我在Activity中的LinearLayout中有按钮,它由ActivityGroup放入Gallery。 ActivityGroup也是适配器实现,整体效果是全屏滑动,捕捉面板。

这是有效的(实际上是一种享受),除了父布局上的触摸事件将所有按钮置于按下状态(并且任何释放都移除了状态)。单个按钮的触摸仅传递到该按钮。

按钮没有接收任何事件,它们只是改变状态。

我做错了什么吗?这是一个已知的错误,是否有解决办法?

非常感谢任何见解。

1 个答案:

答案 0 :(得分:4)

虽然这个问题不明显,但它的解决方案可能对其他人有用,所以我会回答我自己的问题。

如上所述,我(错误)使用Gallery提供了一个iPhone滑盖面板。我是这样做的,当Gallery询问其适配器实现视图时,返回活动的顶级窗口。

Gallery的典型使用会导致应用新闻事件所需的小视图 - 它更像是一个按钮,然后是一个面板。我们的使用意味着单个视图中有许多按钮,我们不希望新闻事件全局应用。

因此,解决方法非常简单。我扩展了Gallery并故意破坏了pointToPosition(int x,int y),每次返回INVALID_POSITION。画廊仍然会做其他所需的一切,但跳过尝试将触摸事件应用于任何元素,但本身(准备滚动或投掷)。

我希望这对某人有价值。