Die Standard-Browser-App für Android zeigt Zoom-Steuerelemente beim Scrollen an und ermöglicht auch das Pinch-Zoomen. Wie kann ich diese Funktion für mein eigenes Webview aktivieren?
Ich habe es versucht:
webSettings.setBuiltInZoomControls(true);
webSettings.setSupportZoom(true);
infolgedessen wird jedoch keine der Funktionen aktiviert. Übrigens habe ich ein WebChromeClient
und ein WebViewClient
für die Webansicht festgelegt, wenn dies einen Unterschied macht.
Vielen Dank!
Seltsam. Innerhalb der OnCreate-Methode verwende ich
webView.getSettings().setBuiltInZoomControls(true);
Und es funktioniert gut hier. Irgendetwas Besonderes in Ihrer Webansicht?
Benutze diese:
webview.getSettings().setBuiltInZoomControls(true);
webview.getSettings().setDisplayZoomControls(false);
Überprüfen Sie, ob Sie nicht über eine ScrollView verfügen, die Ihre Webansicht umschließt .
In meinem Fall war das das Problem. Es scheint, dass ScrollView die Pinch-Geste stört.
Um das Problem zu beheben, können Sie Ihre Webansicht einfach aus der ScrollView entfernen .
Fügen Sie in OnCreate Folgendes hinzu:
webview.getSettings().setSupportZoom(true);
webview.getSettings().setBuiltInZoomControls(true);
webview.getSettings().setDisplayZoomControls(false);
Fügen Sie im HTML-Dokument Folgendes hinzu:
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2, user-scalable=yes">
</head>
</html>
Lassen Sie in Javascript Folgendes weg:
//event.preventDefault ? event.preventDefault() : (event.returnValue = false);
Versuchen Sie diesen Code, ich werde gut funktionieren.
webSettings.setSupportZoom(true);
webSettings.setBuiltInZoomControls(true);
webSettings.setDisplayZoomControls(false);
Fügen Sie die folgende Zeile hinzu, um Zoom-Steuerelemente in einer WebView zu aktivieren:
webView.getSettings().setBuiltInZoomControls(true);
Mit dieser Codezeile wird der Zoom in Ihrem WebView aktiviert. Wenn Sie die vorhandenen Schaltflächen zum Vergrößern und Verkleinern entfernen möchten, fügen Sie die folgende Codezeile hinzu:
webView.getSettings().setDisplayZoomControls(false);