SimpleOnGestureListener不适用于ScrollView

Bha*_*kar 7 android scrollview gesture

我有一个屏幕,我有一个标题,一个ScrollView和页脚内的TextView.我必须使用ScrollView,因为TextView中的Text也可以很长.

现在,当我在这个屏幕上使用SimpleOnGestureListener时.它不适用于ScrollView部分.删除ScrollView一切正常.但对于长文本的情况,一些文本正在被遗漏.

我想在SimpleOnGestureListener中使用onFling和onDoubleTap.

请指教.

此致,尚卡尔

Bha*_*kar 13

我得到了这个问题的解决方案

在Activity类中添加以下方法

@Override
public boolean dispatchTouchEvent(MotionEvent ev){
    super.dispatchTouchEvent(ev);
    return gestureScanner.onTouchEvent(ev);
} 
Run Code Online (Sandbox Code Playgroud)

如下面的链接所示:

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

  • 感谢男人,比使用ScrollView实现更容易! (2认同)

Zai*_*ani 3

您必须创建一个自定义 ScrollView 对象并覆盖它的 onTouchEvents 来检查您的手势。下面的代码对此进行了演示。

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);
        }
    }
Run Code Online (Sandbox Code Playgroud)

如果您遇到任何问题,请告诉我。:)

-扎伊德