有没有办法在附加到 ListView 的 ScrollListener 中获取 Fling 的方向(向上或向下)?我得到了 OnScrollListener.SCROLL_STATE_FLING 没有问题,但我无法得到方向。我是否必须为此编写一个完整的 GestureListener 和 onTouch 侦听器并将其附加到我的 ListView 上,还是有更简单的方法?我只需要Fling的方向而已。感谢您的回答。
问问题
2514 次
1 回答
1
我是否必须为此编写一个完整的 GestureListener 和 onTouch 侦听器并将其附加到我的 ListView 上,还是有更简单的方法?
您可以像这样简单地使用 OnTouchListener:
listView.setOnTouchListener(new OnTouchListener() {
int before = -1;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
before = ((ListView) v).getFirstVisiblePosition();
break;
case MotionEvent.ACTION_UP:
int now = ((ListView) v).getFirstVisiblePosition();
if(now < before)
Log.v("onTouch", "Scroll Up");
else if(now > before)
Log.v("onTouch", "Scroll Down");
}
return false;
}
});
如果您只想在发生 fling 时收到通知:将当前滚动状态保存在 OnScrollListener 的onScroll()
方法中,并检查是否是 fling 动作。
于 2012-12-21T18:43:43.697 回答