繁体   English   中英

ListView父视图无法拦截触摸事件

[英]ListView parent view cannot intercept touch events

我有一个简单的布局:

<CustomFrameLayout>
    <ListView />
</CustomFrameLayout>

在我的CustomFrameLayout中,我要重写:

onInterceptTouchEvent(MotionEvent event);

并返回false。 滚动ListView时,onInterceptTouchEvent会接收ACTION_DOWN和第一个ACTION_MOVE事件。 然后,ListView似乎接手了,并且onInterceptTouchEvent无法接收以下ACTION_MOVE事件。

这与文档指出的相反:

只要您从此函数返回false,随后的每个事件(直至并包括最终的up)将首先在此处传递,然后传递到目标的onTouchEvent()。

http://developer.android.com/reference/android/view/ViewGroup.html#onInterceptTouchEvent(android.view.MotionEvent)

我研究了请求触摸事件在ListView级别不被拦截。

requestDisallowInterceptTouchEvent(boolean disallowIntercept)

这似乎没有任何作用。 我也应该在ListView单元格视图上调用它吗? 还有其他我想念的东西吗? 我正在Android 4.4上进行测试

谢谢。

您应该在onInterceptTouchEvent(MotionEvent event);返回true onInterceptTouchEvent(MotionEvent event);

true表示您愿意接受进一步的触摸操作,而false表示您对进一步的操作不感兴趣...

我决定改写此方法。 在这里,我可以保证在将所有触摸事件分派给子视图并由子视图潜在使用之前,可以拦截所有触摸事件。

dispatchTouchEvents(MotionEvent event);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM