Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 列表行的抽屉布局中带有onFling手势的ListView_Android_Gestures_Drawerlayout - Fatal编程技术网

Android 列表行的抽屉布局中带有onFling手势的ListView

Android 列表行的抽屉布局中带有onFling手势的ListView,android,gestures,drawerlayout,Android,Gestures,Drawerlayout,我有一个从屏幕右侧打开的DrawerLayout。 在抽屉的滑动布局中,我有一个ListView,我想在列表行上实现onFling手势,以便获得从右到左的滑动手势(因此这不是一个模棱两可的手势) 问题是抽屉捕捉到了刷卡手势并将其消费掉。所以这个列表不会得到这个手势。如果抽屉是打开的,我怎么能告诉它不要使用那个手势呢 该代码与使用手势检测器的每个手势实现一样 mGestureDetector = new GestureDetector(this, new LeftToRightSwipeGestu

我有一个从屏幕右侧打开的
DrawerLayout
。 在抽屉的滑动布局中,我有一个
ListView
,我想在列表行上实现
onFling
手势,以便获得从右到左的滑动手势(因此这不是一个模棱两可的手势)

问题是抽屉捕捉到了刷卡手势并将其消费掉。所以这个列表不会得到这个手势。如果抽屉是打开的,我怎么能告诉它不要使用那个手势呢

该代码与使用
手势检测器的每个手势实现一样

mGestureDetector = new GestureDetector(this, new LeftToRightSwipeGesture());

mList.setOnTouchListener(new OnTouchListener()
{

  @Override
  public boolean onTouch(View v, MotionEvent event)
  {
    return mGestureDetector.onTouchEvent(event);
  }
});
还有手势听者

private class LeftToRightSwipeGesture extends SimpleOnGestureListener
{
    @Override
    public boolean onFling(MotionEvent start, MotionEvent end, float velocityX, float velocityY)
    {
      if (Math.abs(end.getY() - start.getY()) < FLING_MAX_OFF_PATH && Math.abs(velocityX) > FLING_THRESHOLD_VELOCITY && Math.abs(start.getX() - end.getX()) > FLING_MIN_DISTANCE
          && end.getX() > start.getX())
      {
        //DO STUFF
        return true;
      }
      return false;
    }

    @Override
    public boolean onDown(MotionEvent e)
    {
      return true;
    }
  }
private类leftToRightswipeTesture扩展了SimpleNogestureListener
{
@凌驾
公共布尔onFling(MotionEvent开始、MotionEvent结束、float-velocityX、float-velocityY)
{
如果(Math.abs(end.getY()-start.getY())FLING\u THRESHOLD\u VELOCITY和&Math.abs(start.getX()-end.getX())>FLING\u MIN\u DISTANCE
&&end.getX()>start.getX())
{
//做事
返回true;
}
返回false;
}
@凌驾
公共布尔onDown(运动事件e)
{
返回true;
}
}