【问题标题】:Fling on ListView - what direction?扔在 ListView - 什么方向?
【发布时间】:2012-12-09 07:39:10
【问题描述】:

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

【问题讨论】:

标签: android listview direction onfling


【解决方案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() 方法中,并检查是否是弹跳动作。

【讨论】:

    猜你喜欢
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2017-09-26
    • 2015-03-19
    • 1970-01-01
    • 2011-03-30
    • 2011-12-02
    • 2019-03-22
    相关资源
    最近更新 更多