毫无疑问,这是由我绝对非正统的布局引起的 - 我在 Activity 的 LinearLayout 中有按钮,该按钮由 ActivityGroup 放置到 Gallery 中。 ActivityGroup也是适配器实现,整体效果是全屏滑动、贴合面板。
这是有效的(实际上是一种享受),除了父布局上的触摸事件将所有按钮置于按下状态(并且任何释放都会删除该状态)。对单个按钮的触摸仅传递到该按钮。
这些按钮没有接收任何事件,它们只是改变状态。
我是不是做错了什么?这是一个已知的错误吗?有解决方法吗?
任何见解都将非常感激。
最佳答案
尽管这个问题很晦涩,但它的解决方案可能对其他人有用,所以我会回答我自己的问题。
如前所述,我(错误)使用 Gallery 来提供 iPhone 上的滑动面板。当 Gallery 向其 Adapter 实现请求 View 时,我通过返回 Activity 的顶级窗口来实现此目的。
图库的典型使用会导致需要应用新闻事件的小 View - 它更像是一个按钮,而不是一个面板。我们的使用意味着单个 View 中有许多按钮,并且我们不希望在全局范围内应用新闻事件。
所以解决方法非常简单。我扩展了 Gallery 并故意破坏了 pointToPosition(int x, int y),每次都返回 INVALID_POSITION。 Gallery 仍然会执行预期的所有其他操作,但会跳过尝试将触摸事件应用于除自身之外的任何元素(以准备滚动或快速滑动)。
我希望这对某人有值(value)。
关于android - 一键事件使所有 subview 进入按下状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4956269/