Как внедрить жесты броска в веб-просмотр? - PullRequest
1 голос
/ 22 февраля 2011

Я загружаю изображения в веб-просмотр и хотел бы переключаться между ними с помощью жеста, но при реализации детектора жестов в веб-просмотре все события выполняются с осторожностью благодаря функции детектора = веб-просмотра, так как масштабирование и mt не работают.Есть ли решение?Фильтрация событий и передача их до касания?Пример кода очень важен.

Спасибо всем.

1 Ответ

4 голосов
/ 25 февраля 2011

Ключом к этому является проверка возвращаемого значения из gestDetector.onTouchEvent и, если gestDetector не обработал событие, а затем передать его суперклассу WebView. Кроме того, обязательно возвращайте false из метода onDown, даже если вы что-то с ним делаете, чтобы суперкласс мог инициализировать свое внутреннее состояние. Если ваш метод onFling обрабатывает событие, возвращает «true», в противном случае возвращает «false», чтобы могли применяться методы по умолчанию.

public class FlingView extends WebView implements OnGestureListener {

    private GestureDetector gestureDetector;

    public FlingView(Context context) {
        super(context);
        init();
    }

    public void init() {
        gestureDetector = new GestureDetector(this.getContext(), this);
    }

    @Override
    public boolean onTouchEvent(MotionEvent e) {
        return (
        gestureDetector.onTouchEvent(e) || super.onTouchEvent(e));
    }

    /* OnGestureListener events */

    public boolean onDown(MotionEvent e1) {
        // Initialize event here
        ...

        // give the superclass a chance at tap events
        return false;
    }

    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
    float velocityY) {
        if (test) {
            // handle fling
            ...
            return true;
        } else {
            // let superclass handle the event
            return false;
        }
    }
}
...