2011-02-10 40 views
1

毫无疑问,这是我的决然非正统的布局造成的 - 我有一个的LinearLayout按钮位于由一成的ActivityGroup图库的活动。 ActivityGroup也是适配器实现,其全部效果是全屏滑动,捕捉面板。一个触控事件将所有子视图进入按下状态

这是工作(一种享受,其实)除了父布局的触摸事件把所有的按钮到按下状态(和任何版本删除的状态)。触摸单个按钮只会传送到该按钮。

的按钮没有收到任何事件,他们只是改变状态。

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

任何见解将是非常赞赏。

回答

4

晦涩,因为这问题是它的解决办法可能是使用别人的,所以我会回答我的问题。

如前所述,我(MIS)使用画廊提供slidey面板点菜iPhone。我通过返回Activity的顶级窗口来完成此任务,当Gallery要求其适配器实现一个视图时。

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

所以解决方法非常简单。我扩展了Gallery,故意破坏了pointToPosition(int x,int y),每次都返回INVALID_POSITION。 Gallery仍然会做其他所有的事情,但是会跳过尝试将触摸事件应用于任何元素,但本身(自己准备滚动或拖动)。

我希望这对某人有价值。

+0

确实为我节省了很多时间,thx!但问题是:如果画廊不应该用于这样的事情,那是什么? – 2011-06-23 04:26:07

相关问题