【发布时间】:2010-12-15 23:07:50
【问题描述】:
我正在开发一个小型但不错的开源项目:RealViewSwitcher,它允许通过执行水平翻转在多个视图之间切换 - 就像 Android 的 Launcher 一样。这只是一个简单的ViewGroup,它实现了onInterceptTouchEvent 和onTouchEvent 以使事情正常进行。事实上,大部分代码取自文件Workspace.java(第 572 行及以下),处理触摸事件的两种方法也是如此 - 没有太多更改。
但是,我没有让这个东西工作。我目前的工人阶级张贴在这里(在 pastebin 上,因为它非常大): http://pastebin.com/8p8GCEZK
如果我执行我的类(只是创建它,添加一些 TextView,然后将其设置为活动的内容视图),如果我快速抛出,我会得到以下输出:
12-15 23:53:04.797: INFO/RealViewSwitcher(7477): intercept ACTION_DOWN
12-15 23:53:04.797: INFO/RealViewSwitcher(7477): touch ACTION_DOWN
12-15 23:53:04.807: INFO/RealViewSwitcher(7477): touch ACTION_MOVE
12-15 23:53:04.840: INFO/RealViewSwitcher(7477): touch ACTION_MOVE
12-15 23:53:04.867: INFO/RealViewSwitcher(7477): touch ACTION_MOVE
12-15 23:53:04.897: INFO/RealViewSwitcher(7477): touch ACTION_MOVE
12-15 23:53:04.897: INFO/RealViewSwitcher(7477): touch ACTION_UP
我现在的问题是:无论我做什么,我的onInterceptTouchEvent 方法中都没有ACTION_MOVE。我多次阅读文档并尝试使用返回值,但是除了那里的 ACTION_DOWN 之外,我没有得到任何其他事件 - 这很难看,因为启动投掷的实际代码位于 ACTION_MOVE 案例中.
你能帮帮我吗?我无法得到的烦人的事情:它似乎在官方 Launcher 应用程序中以相同的方式实现。但是他们的代码有效,我的无效。我错过了什么?
【问题讨论】:
-
我之前在自定义实现中遇到过类似的问题。 (不适合自定义视图)。您是否已经阅读了 Launcher2 源代码? android.git.kernel.org/?p=platform/packages/apps/…
-
我现在做了 - 但据我所知,他们只是添加了处理第二个指针的功能,这在我的情况下不需要。
标签: android user-interface event-handling intercept touch-event