我正在查看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时如何获取触摸位置?
答案 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;
}
});