2010-10-04 4 views

Antwort

62
mWebView.setOnTouchListener(new View.OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     return true; 
    } 
}); 

Deaktiviert alle Touch-Ereignisse auf einem WebView weil die Berührungs Zuhörer vor dem Standard-Touch-Verhalten des WebView ausgeführt wird. Durch die Rückgabe true wird das Ereignis konsumiert und nicht an die WebView weitergegeben.

Die Verwendung von android:clickable="false" deaktiviert keine Berührungsereignisse.

+0

Dann, wie die Ereignisse wiederherstellen? Stellen Sie sich vor, ich muss sie vorübergehend deaktivieren und sie dann wieder aktivieren, wenn ich sie brauche. – Hosane

+2

Eigentlich sollte die Einstellung "android: clickable" und "longClickable" den Trick für eine Webansicht darstellen –

1

Wenn ich dich richtig verstanden habe, musst du nur die onTouchEvent Methode überschreiben.

+0

Höchstwahrscheinlich sollte das funktionieren. Ich fragte mich, ob es eine Immobilie oder etwas einfacheres gab. – hpique

+0

Ah ich sehe gut, dann möchten Sie vielleicht versuchen, Ihrem WebView diesen Layout-Parameter android zu geben: clickable = "false". Ich bin nicht sicher, ob es funktioniert, aber theoretisch sollte es wie WebView von View vererbt werden. –

+0

Funktioniert nicht, aber ich habe eine andere Lösung gefunden, die ich gepostet habe. – hpique