ListView水平投掷手势

时间:2011-03-30 04:20:29

标签: android listview

我有一个列表视图,显示给定日期的条目。列表视图上方有按钮,可用于增加/减少日期。一切正常。我要做的是更换这些按钮并让用户向右/向左滑动以增加/减少日期。

最好的方法是什么?我不关心什么项目被刷过,通常列表视图中没有项目给定日期,只要它发生在列表视图区域。我已经对这些项目进行了click和longclick监听。

1 个答案:

答案 0 :(得分:13)

只需实现OnGestureListener。

public class MyListActivity extends ListActivity implements OnGestureListener

使用GestureDetector

GestureDetector detector = new GestureDetector(this, this);

将列表的触摸事件传递给GestureDetector

listView.setOnTouchListener(new OnTouchListener() {
    public boolean onTouch(View view, MotionEvent e) {
        detector.onTouchEvent(e);
        return false;
    }
});

最后使用fling方法检测手势。您可以使用力度值来检测运动方向。

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {}