【发布时间】:2010-05-28 06:45:22
【问题描述】:
我试图在列表视图上左右滑动并让 viewflipper 切换。就像 remeberthemilk 应用程序和 nexus 上的默认新闻和天气应用程序一样(浏览新闻主题)。使用我找到的各种教程,我遇到了一个显示如何实现滑动手势的 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);
但有时会发生的情况是当用户滑动时会触发 listview setOnItemClickListener。我如何防止这种情况发生,并且仅在用户实际单击它的列表项而不只是在其上滑动时才触发 setOnItemClickListener。
谢谢, 费萨尔·阿比德
【问题讨论】: