SimpleOnGestureListener не работает для ScrollView - PullRequest
7 голосов
/ 21 августа 2011

У меня есть экран, на котором у меня есть заголовок, TextView внутри ScrollView и нижний колонтитул.Я должен использовать ScrollView, так как текст в TextView также может быть длинным.

Теперь, когда я использую SimpleOnGestureListener для этого экрана.Это не работает для раздела ScrollView.Удаление ScrollView все работает нормально.Но для длинного текста часть текста пропускается.

Я хочу использовать onFling и onDoubleTap в SimpleOnGestureListener.

Пожалуйста, сообщите.

С уважением, Шанкар

Ответы [ 2 ]

13 голосов
/ 23 августа 2011

Я получил решение для этого выпуска

Добавьте следующий метод в свой класс занятий

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

Как предлагается по ссылке ниже:

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

3 голосов
/ 21 августа 2011

Вы должны создать пользовательский объект 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);
        }
    }

Дайте мне знать, если у вас возникнут какие-либо проблемы. :)

-Zaid

...