如果我的标题不够清楚,我会详细解释一下:
假设我们有一个充满多个按钮(10 多个)的屏幕,我们按下一个按钮,激活 onTouch/onClick。如果我们现在移动手指而不抬起它,我希望它激活它滑过的任何其他按钮。在这种特殊情况下,我希望当您滑过虚拟钢琴时播放声音。
我知道 onTouchListener 解决方案,您可以在其中注册每个 ACTION_MOVE 并找到一些激活新事件的边界,但如果您有多个按钮并希望允许平滑滑动而不延迟,那么这远非最佳。
我也读过这个线程 https://stackoverflow.com/questions/4838609/detect-which-view-your-finger-is-sliding-over-in-android这建议我们将视图的 touchListener 与活动中的手势侦听器结合起来,但再一次,这对于我的情况来说根本不是最佳选择。
我还没有尝试将触摸监听器与手势监听器结合起来,但如果有人告诉我他们没有其他方法可以做到这一点,我会继续这样做。
在我看来,正确的方法是忘记按钮,并创建一个绘制整个键盘的自定义视图。在此视图中,您可以按照您喜欢的方式处理触摸事件。您甚至不需要手势检测器,只需分析运动事件的动作和坐标,非常简单。
我不明白你所说的 ACTION_MOVE 和延迟是什么意思。为了最大限度地减少延迟,请对 ACTION_DOWN 做出反应,如果在按下状态时悬停其他键,则对 ACTION_MOVE 做出反应。不可能比这更快了。对于按钮来说,存在一个重要的延迟,因为当用户在 ACTION_UP 上抬起手指时会触发 onClick() 事件。
按钮并不像您所描述的那样工作。这个想法是,如果用户点击一个按钮,然后同时将手指移开,则不会触发周围其他视图上的 onClick 事件。这可以防止虚假点击。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)