Horizontal Scroll View detect long press

和自甴很熟 提交于 2019-12-04 04:37:15

问题


I have a HSV, and I'd like to respond to a long click on that view. When I set it's onLongClickListener() it doesn't do much, the callback is not being called.

I assume that the scroll view consumes everything with an onTouch so it could handle the scrolling, but how do I work around it?


回答1:


You can do this with GestureDetector. This works:

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);
    }
});


来源:https://stackoverflow.com/questions/20592747/horizontal-scroll-view-detect-long-press

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!