慕姐8265434
代码不允许使用onClickListener在Item子项目上(从不调用回调函数)。为了找到一个解决方案,我已经挣扎了一段时间,我决定在这里发布您需要在代码中修改的内容(如果有人需要的话)。而不是重写dispatchTouchEvent覆盖onTouchEvent..使用相同的代码dispatchTouchEvent并删除该方法(您可以在这里读取这两种方法之间的差异。http:/developer.android.com/GuideTems/ui/UI-vents.html#EventHandler )@Overridepublic boolean onTouchEvent(MotionEvent event) {
boolean handled = mGesture.onTouchEvent(event);
return handled;}然后,添加以下代码,该代码将决定从Item子项目中窃取事件,并将其交给我们的onTouchEvent或者让他们来处理。@Overridepublic boolean onInterceptTouchEvent(MotionEvent ev) {
switch( ev.getActionMasked() ){
case MotionEvent.ACTION_DOWN:
mInitialX = ev.getX();
mInitialY = ev.getY();
return false;
case MotionEvent.ACTION_MOVE:
float deltaX = Math.abs(ev.getX() - mInitialX);
float deltaY = Math.abs(ev.getY() - mInitialY);
return ( deltaX > 5 || deltaY > 5 );
default:
return super.onInterceptTouchEvent(ev);
}}最后,不要忘记声明类中的变量:private float mInitialX;private float mInitialY;