【已解决】 自定义SlideMenu的事件分发问题?
今天在看大据哥自定义View的SlideMenu视频的时候,照着把视频的代码敲完了。然后发现了如下问题:
----当mEditView处于打开状态时,手指按在mEditView上右滑时,控件发生较大抖动。-----
查找原因后发现,问题是出在了当onInterceptTouchEvent方法返回false时,
onTouchEvent方法中的ACTION_DOWN不执行,

这时,mDownx的值在此次右滑过程中,开始时是没有被赋值的。此时mDownX的值是上次滑动时被赋的值,因此在右滑时执行OnTouchEvent方法的ACTION_MOVE时,由于dx突然变大,就会导致滑动出现大的抖动。

问题是找到了,但是在我的记忆中,onInterceptTouchEvent即使返回false,onTouchEvent的ACTION_DOWN也是会执行的。但是这里没有执行,不知道是什么原因呢?
onInterceptTouchEvent即使返回false或者super,就会把事件给到子view了。如果子view的dispatchTouchEvent方法返回false,才会给到onTouchEvent,如果子view的dispatchTouchEvent返回true,则消费掉,如果是super则由子view的onTouchEvent处理。
你这里说因为返回了false,而mDownX是老的值,不是下手的地方,这个问题可以解决的。在onInterceptTouchEvent方法的down的时候获取值吧。