Android 在customView(如抽屉布局)中进行触摸处理

Android 在customView(如抽屉布局)中进行触摸处理,android,gridview,android-studio,touch,drawerlayout,Android,Gridview,Android Studio,Touch,Drawerlayout,我有一个自定义视图,如抽屉布局,有两个孩子。切换的gridView(如抽屉布局中的listview)和另一个子项作为内容。像抽屉布局一样,我希望如果检测到触摸,即滚动触摸,则在自定义布局中处理它(调用onTouchEvent()),但如果触摸是点击gridView项gridView处理它。因此,我验证了iterceptouchevent()并使用了GestureDEtector来检测滚动,但这不起作用 @Override public boolean onInterceptTouchEve

我有一个自定义视图,如抽屉布局,有两个孩子。切换的gridView(如抽屉布局中的listview)和另一个子项作为内容。像抽屉布局一样,我希望如果检测到触摸,即滚动触摸,则在自定义布局中处理它(调用onTouchEvent()),但如果触摸是点击gridView项gridView处理它。因此,我验证了iterceptouchevent()并使用了GestureDEtector来检测滚动,但这不起作用

   @Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
    mGestureDetector.onTouchEvent(ev);
    if(isScrolling) {
         isScrolling = false;
         onTouchEvent(ev);
        }
     return false;
}

  public class touchDetector extends GestureDetector.SimpleOnGestureListener{


    @Override
    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
        Log.d("*********","ONScroll");
        isScrolling = true;
        return super.onScroll(e1, e2, distanceX, distanceY);
    }


}

您正在以一种使TouchListener复杂化的方式进行操作,您只需要:

public boolean onTouch(View v, MotionEvent event) {
    int viewId = v.getId();

    switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN: {
            switch (viewId) {
                case R.id.viewId1: {
                    ...
                    break;
                }
                case R.id.viewId2: {
                    ...
                    break;
                }
            }
            break;
        }
        case MotionEvent.ACTION_UP: {
            switch (viewId) {
                ...
                }
            }
            break;
        }
    }
    return false;
}

因此,您可以处理特定视图的特定操作,如果您想知道用户是否正在滚动,只需将MotionEvent的
getHistoricalX()
getHistoricalX()
getX()
getY()进行比较即可
ActionDown案例中
这样您就可以知道原始接触点和当前接触点之间的区别了

谢谢,但是如果onInterceptTouchEvent返回false OnTouch()方法不用于接触儿童的位置,只需将touchlistener连接到您的活动/片段