水平滚动视图检测长按

3

我有一个HSV视图,并希望对其进行长按响应。当我设置它的onLongClickListener()时,它似乎没有任何反应,回调函数没有被调用。

我猜测滚动视图通过onTouch消耗了所有事件,以便处理滚动,但我该如何解决这个问题呢?

1个回答

7
您可以使用GestureDetector来实现此功能。以下是示例代码:
GestureDetector.OnGestureListener listener = new GestureDetector.SimpleOnGestureListener() {
    @Override
    public void onLongPress(MotionEvent e)
    {
        Toast.makeText(TestXmlActivity.this, "LongClick", Toast.LENGTH_SHORT).show();
    }
};

final GestureDetector gestureDetector = new GestureDetector(this, listener);

horizontalScrollView.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event)
    {
        return gestureDetector.onTouchEvent(event);
    }
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接