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;
}
}