放弃ListView - 方向是什么?

时间:2012-12-21 17:58:09

标签: android listview direction onfling

有没有办法在附加到ListView的ScrollListener中获取Fling(向上或向下)的方向?我没有问题就得到了OnScrollListener.SCROLL_STATE_FLING,但我无法得到指示。我是否必须编写一个完整的GestureListener和onTouch侦听器并将其附加到我的ListView中,或者是否有更简单的方法?我只需要Fling的方向了。谢谢你的回答。

1 个答案:

答案 0 :(得分: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;
    }
});

如果您只想在发生投掷时收到通知:在OnScrollListener的onScroll()方法中保存当前滚动状态,并检查是否是一个投掷动作。