WebView macht das Zoomen durch zweimaliges Tippen überflüssig.

Ich habe viele Tickets zum Thema Zoomen in WebViews gelesen und bin nicht auf eine Antwort für meinen Fall gekommen.

Hier ist mein Setup:

Ich verwende eine benutzerdefinierte Webansicht mit den folgenden Einstellungen:

getSettings().setBuiltInZoomControls(false);
getSettings().setSupportZoom(false);
getSettings().setUseWideViewPort(true);
getSettings().setLoadWithOverviewMode(true);

An dieser Stelle möchte ich darauf hinweisen, dass ich sowohl auf OverviewMode als auch auf WideViewPort angewiesen bin, um mein WebView zu skalieren.

Ich überschreibe auch mein OnTouchEvent und delegiere alle geeigneten Ereignisse an einen Gestenmelder:

  @Override
  public boolean onTouchEvent(MotionEvent event) {
    if (gestureDetector.onTouchEvent(event)) return true;
    return super.onTouchEvent(event);
  }

Hier ist die Listener-Implementierung, die alle doubleTap-Ereignisse abfängt:

  @Override
  public boolean onDoubleTapEvent(MotionEvent e) {
    // Do nothing! 
    return true;
  }

  @Override
  public boolean onDoubleTap(MotionEvent e) {
    // Do nothing! 
    return true;
  }

  @Override
  public boolean onSingleTapConfirmed(MotionEvent e) {
    // Do nothing! 
    return true;
  }

Außerdem habe ich diese 2 WebView-Methoden im Zusammenhang mit Zoom überschrieben:

  @Override
  public boolean zoomIn() {
    return true;
  }

  @Override
  public boolean zoomOut() {
    return true;
  }

Unabhängig von all diesen Optionen wird meine Webansicht durch eine bestimmte Tippfrequenz vergrößert / verkleinert. Ich habe keine Option gefunden, die diese Art des Zoomens deaktiviert. Das MotionEvent für diesen Zoom scheint für den GestureDetector nicht anwendbar zu sein, und die Methoden zoomIn () zoomOut () außer Kraft zu setzen haben ebenfalls keine Wirkung.

Kann mir jemand helfen, dieses Double-Tap-Zoom-Verhalten von WebView zu umgehen?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage