Android 在已返回true后,将onInterceptTouchEvent结果更改回false
我有一个Android 在已返回true后,将onInterceptTouchEvent结果更改回false,android,Android,我有一个FrameLayout,里面有一个GoogleMap对象。我想将用户缩放级别限制在某些缩放级别之间。(这不是关于谷歌地图的问题,而是关于onInterceptTouchEvent行为的一般问题。) 因此,在FrameLayout中,我已经覆盖了onInterceptTouchEvent,当用户按压缩放时,我使用ScaleSteureDetector检测它,并检查地图缩放级别是否在期望值之间 如果是,onInterceptTouchEvent返回false,同级视图(谷歌地图)定期执行缩放
FrameLayout
,里面有一个GoogleMap
对象。我想将用户缩放级别限制在某些缩放级别之间。(这不是关于谷歌地图的问题,而是关于onInterceptTouchEvent
行为的一般问题。)
因此,在FrameLayout
中,我已经覆盖了onInterceptTouchEvent
,当用户按压缩放时,我使用ScaleSteureDetector
检测它,并检查地图缩放级别是否在期望值之间
如果是,onInterceptTouchEvent返回false
,同级视图(谷歌地图)定期执行缩放
如果不是,我将返回true
,这样同级视图就不会收到该手势
但是,这会创建一种行为,即如果按住“缩小”到最大值,然后立即按住“放大”(而不抬起手指),视图将不会放大
这是因为不再调用onInterceptTouchEvent
(因为我之前已返回true),并且我无法将偶数传递给同级视图
如果我抬起手指,然后按住放大按钮,它会再次工作
我是否可以要求视图重新调用InterceptTouchEvent?我最终解决了这个问题,在视图组上实现了dispatchTouchEvent,并在您想要取消请求时返回“true” 有关其工作原理的一些一般信息: 在Android中,这是调用事件的顺序(从第一个到最后一个):
谢谢。a好的,您所能做的就是覆盖dispatchTouchEvent并进行您自己的事件调度。我可以直接手动调用我兄弟姐妹的onTouchEvent吗?(如果我没有收到更多的评论,我将测试并让您知道)