关于安卓左右滑动onFling()不灵敏的问题

misakiyd 2016-07-17 04:39:22
这是部分代码,可以滑动,但是只有往左滑动灵敏,往右滑动时而能滑动,时而滑动不了


 /**
* 初始化手势识别器
*/
public void initGesture()
{
gd=new GestureDetector(new GestureDetector.OnGestureListener() {

//覆盖此方法,实现手指滑动切换界面效果

/**
*
* @param e1 按下的点的位置
* @param e2 松开的点的位置
* @param velocityX X轴方向的速度
* @param velocityY Y轴方向的速度
* @return
*/
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {

//判断X轴方向的速度是否满足横向滑动的条件
if(velocityX>100)//速度大于200像素每秒,则可以滑动
{
float dx=e2.getX()-e1.getX();//横向滑动的距离
if(Math.abs(dx)<100)//滑动距离小于200像素,则滑动无效
{ //Math.abs(dx)表示对dx取绝对值
return true;
}

if(dx<0)//向右滑动
{
//调用next方法
next(null);//因为不是组件调用的该方法,所以传个null即可
}
else{//向左滑动
//调用prev方法
prev(null);//因为不是组件调用的该方法,所以传个null即可
}

}



return true;
}


@Override
public boolean onDown(MotionEvent e) {
return true;
}

@Override
public void onShowPress(MotionEvent e) {

}

@Override
public boolean onSingleTapUp(MotionEvent e) {
return false;
}

@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
return false;
}

@Override
public void onLongPress(MotionEvent e) {

}


});

}

/**
* 给手势识别器绑定onTouch事件
*/
@Override
public boolean onTouchEvent(MotionEvent event) {
return gd.onTouchEvent(event);
}
...全文
344 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_23169235 2016-07-26
  • 打赏
  • 举报
回复
under_wind 2016-07-17
  • 打赏
  • 举报
回复
可能是事件被拦截了,还有别的控件或者别的响应事件吗?

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧