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

misakiyd misakiyd 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
这是部分代码,可以滑动,但是只有往左滑动灵敏,往右滑动时而能滑动,时而滑动不了


 /**
* 初始化手势识别器
*/
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);
}
...全文

相关推荐

评论 2
收藏 已收藏
分享
返回顶部
misakiyd
Android 80,490 成员 91,375 内容