【问题标题】:Android GridView Get Position Of Touch In onScroll Event ListenerAndroid GridView在onScroll事件监听器中获取触摸位置
【发布时间】:2015-07-25 07:36:57
【问题描述】:

我正在查看 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?
            }

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

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

【问题讨论】:

  • developer.android.com/guide/topics/ui/drag-drop.html 查看您从 Listener() 中的事件获得的 Drag_Location 上的“拖放”文档和“getX(), getY()”。
  • 啊,太酷了,我会读一读,谢谢。我一直在尝试拦截片段中的触摸事件,那真是一场噩梦,这看起来有一些潜力

标签: java android gridview ontouchlistener onscrolllistener


【解决方案1】:

谢天谢地,解决方案变得不那么复杂了。

只需向 GridView 添加一个 onTouchListener 并返回 false,这样它就不会吞噬事件。

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

【讨论】:

    猜你喜欢
    • 2019-01-27
    • 1970-01-01
    • 1970-01-01
    • 2016-09-22
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多