Android GridView在onScroll事件监听器中获取触摸位置

时间:2015-05-13 20:27:18

标签: java android gridview ontouchlistener onscrolllistener

我正在查看onScroll事件监听器http://developer.android.com/reference/android/widget/AbsListView.OnScrollListener.html

的文档

当滚动事件发生时,我没有看到获取触摸位置的选项。

在iOS上我可以做到

var pan = scrollView.panGestureRecognizer
var globalPoint = pan.locationInView(view)

但是在Android上我没有看到onScroll参数包含触摸事件位置的任何值

@Override
            public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount)
            {
               //where you mr. touch position event? :(
               //oh touchevent.position, where art thou?
            }

我正在考虑的一个可能的解决方案是在滚动视图的TOP上添加一个视图并监听触摸位置,但我希望有更好的方法。

TL; DR 滚动GridView时如何获取触摸位置?

1 个答案:

答案 0 :(得分:0)

值得庆幸的是,解决方案的复杂程度要低得多。

只需将一个onTouchListener添加到GridView并返回false,这样它就不会吞下该事件。

_gridView.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event)
    {
        System.out.println("Position is " + event.getRawY());
        return false;
    }
});