SimpleOnGestureListener not working for ScrollView

孤街浪徒 提交于 2019-12-01 15:45:10

问题


I have a screen where I have a header, a TextView inside a ScrollView and footer. I have to use ScrollView as the Text in the TextView can be long also.

Now when I am using SimpleOnGestureListener for this screen. It is not working for the ScrollView section. Removing the ScrollView everything working fine. But for the case of long text, some text are getting missed.

I want to use onFling and onDoubleTap in SimpleOnGestureListener.

Please advise.

Regards, Shankar


回答1:


You have to create a custom ScrollView object and override it's onTouchEvents to also check for your gestures. It's demonstrated in the following code.

public class GestureScrollView extends ScrollView {
    GestureDetector myGesture;

    public GestureScrollView(Context context, GestureDetector gest) {
        super(context);
        myGesture = gest;
    }

    public GestureScrollView(Context context) {
        super(context);
    }

    public GestureScrollView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    public boolean onTouchEvent(MotionEvent ev) {
        if (myGesture.onTouchEvent(ev))
            return true;
        else
            return super.onTouchEvent(ev);
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        if (myGesture.onTouchEvent(ev))
            return true;
        else
            return super.onInterceptTouchEvent(ev);
        }
    }

Let me know if you run into any issues. :)

-Zaid




回答2:


I got the solution for this issu

Add following method in the your Activity class

@Override
public boolean dispatchTouchEvent(MotionEvent ev){
    super.dispatchTouchEvent(ev);
    return gestureScanner.onTouchEvent(ev);
} 

As suggested in the below link:

http://groups.google.com/group/android-developers/browse_thread/thread/9fdfb03d0959e299



来源:https://stackoverflow.com/questions/7137742/simpleongesturelistener-not-working-for-scrollview

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