我试图在列表视图上左右滑动并切换视图翻转器。就像 remeberthemilk 应用程序以及 Nexus One 上的默认新闻和天气应用程序一样(滑动浏览新闻主题)。使用我找到的各种教程,我在 stackoverflow 上发现了一个展示如何实现滑动手势的内容
class MyGestureDetector extends SimpleOnGestureListener {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
try {
if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
return true;
// right to left swipe
if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
viewFlipper.setInAnimation(slideRightIn);
viewFlipper.setOutAnimation(slideRightOut);
viewFlipper.showPrevious();
}
} catch (Exception e) {
// nothing
}
return true;
}
}
我通过这样做得到了这个工作
lstView.setOnTouchListener(gestureListener);
然而有时会发生的情况是当人滑动时列表视图 setOnItemClickListener 会被触发。我如何防止这种情况发生,并且只有当用户实际单击它的列表项而不只是在其上滑动时才触发 setOnItemClickListener 。
谢谢,
费萨尔·阿比德
我发现的一种方法是,我实现了而不是依赖 onItemClick
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
// TODO Auto-generated method stub
Log.e("Item Click", "Item Click");
return super.onSingleTapConfirmed(e);
}
在 SimpleOnGestureListener 内部,看起来好像它有效
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)