如何在WebView中启用缩放控件和缩小缩放?


131

Android的默认浏览器应用程序在滚动时会显示缩放控件,并且还可以进行缩放。如何为自己的Webview启用此功能?

我试过了:

webSettings.setBuiltInZoomControls(true);
webSettings.setSupportZoom(true);

但结果没有启用任何功能。顺便说一句WebChromeClientWebViewClient如果设置有所不同,我为Webview 设置了一个和一个。

谢谢!

Answers:


291

奇怪。在OnCreate方法中,我正在使用

webView.getSettings().setBuiltInZoomControls(true);

而且在这里工作正常。您的网络视图中有什么特别之处吗?


46
虽然这将允许捏到缩放,但它还将显示缩放叠加控件(Galaxy S3)。为了禁用屏幕上的缩放工具,但保留捏到缩放功能,还需要调用webView.setDisplayZoomControls(false)。
2014年

49
^webView.getSettings().setDisplayZoomControls(false);
wiseindy 2015年

所有这些都不适合我。请尝试以下网站,例如:“ nbc26.com/robocalls/… ”。它不会让我放大。它真的对您有用吗?请显示完整的代码。
Android开发人员

如果有人在看这个答案,并且想知道webview对象是从哪里来的,则可以通过此注释中WebView webView = (WebView) appView.getEngine().getView();所示的方法获得它
安德鲁丹特

如果您使用Xamarin.Android网络视图渲染器,则其代码如下Control.Settings.BuiltInZoomControls = true; Control.Settings.SetSupportZoom(true); Control.Settings.DisplayZoomControls = false;
阿迪尔·塞亚德


34

检查是否没有ScrollView包装Webview

就我而言,这就是问题所在。似乎ScrollView妨碍了捏手势。

要修复它,只需将Webview移到ScrollView之外


6
您保存了我的一天
allemattio 2013年

对我来说很棒。现在,我可以完全删除嵌套的滚动视图!
阿维·帕山

它工作时,你可以添加机器人:fillViewport =真<滚动型机器人:layout_width = “match_parent”机器人:layout_height = “match_parent”机器人:fillViewport = “真”>
androidAhmed

4

在OnCreate内,添加:

 webview.getSettings().setSupportZoom(true);
 webview.getSettings().setBuiltInZoomControls(true);
 webview.getSettings().setDisplayZoomControls(false);

在html文档中,添加:

<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2, user-scalable=yes">
</head>
</html>

在javascript中,省略:

//event.preventDefault ? event.preventDefault() : (event.returnValue = false);

setSupportZoom的默认布尔值为true,因此webview.getSettings().setSupportZoom(true);默认情况下不需要。
زياد

好答案!您提到了HTML相关问题,这是解决我的问题的关键!谢谢 !
沉思玮申思

4

要在WebView中启用缩放控件,请添加以下行:

webView.getSettings().setBuiltInZoomControls(true);

使用此代码行,可以在WebView中启用缩放,如果要删除提供的放大和缩小按钮,请添加以下代码行:

webView.getSettings().setDisplayZoomControls(false);

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.