readium / SDKLauncher-Android

Launcher app for Readium SDK on Android
BSD 3-Clause "New" or "Revised" License
76 stars 61 forks source link

Event propagation from content to webview #69

Open ClementHard opened 9 years ago

ClementHard commented 9 years ago

Hello,

I'm using the swipe gesture to turn pages and it work great by adding a GestureDetector into the webview OnTouchListener. But if I want to check if the webview consumed the event before trying to detect the swipe gesture (in order to avoid turning the page when dragging a slideshow for example) it do not work because the webview.onTouchEvent(e) always return true even if there is no interactive content.

The same thing works perfectly on iOS.

Here is a StackOverflow question referring to the same problem : http://stackoverflow.com/questions/29821565/check-if-android-webview-is-consuming-touch-events

GestureDetector gestureDetector = new SwipeGestureDetector(context);
webview.setOnTouchListener(new View.OnTouchListener() {
    public boolean onTouch(View v, MotionEvent event) {
        // With the following code, the gestureDetector is never triggered, webview.onTouchEvent(e) always return true (event is consumed by the webview).
        return webview.onTouchEvent(event) || gestureDetector.onTouchEvent(event);
    }
});

This is probably an Android webview issue.

ButterRhopa commented 8 years ago

I had been searching for a long time and now I think that it has no proper solution......

danielweck commented 8 years ago

Android UIWebView, or Chromium? (the latter is available only from KitKat v4.4+)