我需要处理onTouch手势和onClick事件,那正确的方式是什么?
我有一个视图上设置了onTouchListener和onClickListener。每当我触摸视图时,首先会触发onTouch事件,然后才是onClick事件。但是,在onTouch事件句柄中,我必须返回true或false。返回true意味着事件被消耗,因此Android事件系统将不会进一步传播该事件。
因此,当我在onTouch事件处理程序中返回true时,不会生成onClick事件,也就是我的onClick监听器永远不会被触发。另一方面,返回false则不行,因为这会防止onTouch监听器接收任何进一步的事件,从而无法识别手势。通常解决这个问题的方法是什么?
我有一个视图上设置了onTouchListener和onClickListener。每当我触摸视图时,首先会触发onTouch事件,然后才是onClick事件。但是,在onTouch事件句柄中,我必须返回true或false。返回true意味着事件被消耗,因此Android事件系统将不会进一步传播该事件。
因此,当我在onTouch事件处理程序中返回true时,不会生成onClick事件,也就是我的onClick监听器永远不会被触发。另一方面,返回false则不行,因为这会防止onTouch监听器接收任何进一步的事件,从而无法识别手势。通常解决这个问题的方法是什么?
onTouchListener
中识别出一个点击事件?点击是至少两个触摸事件的序列,其中ACTION_DOWN
事件在非常相同的位置(或者至少在非常相同的视图上)被触发,后续的ACTION_UP
事件也是如此。当然,我们可以实现这一点,如果没有其他解决方案,我会这样做。但我的问题确实是,是否有内置的解决方案来处理这种情况? - theV0IDOnGestureListener
中没有看到任何类似于onClick
的回调函数。 - theV0ID