【问题标题】:How to enable zoom controls and pinch zoom in a WebView?如何在 WebView 中启用缩放控件和捏缩放?
【发布时间】:2011-10-30 13:36:18
【问题描述】:

Android 的默认浏览器应用会在您滚动时显示缩放控件,并且还允许捏合缩放。如何为我自己的 Webview 启用此功能?

我试过了:

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

但结果都没有启用任何功能。顺便说一句,我已经为 Webview 设置了 WebChromeClientWebViewClient,如果这有影响的话。

谢谢!

【问题讨论】:

    标签: android webview


    【解决方案1】:

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

    webView.getSettings().setBuiltInZoomControls(true);
    

    它在这里运行良好。 您的网络视图中有什么特别之处吗?

    【讨论】:

    • 虽然这将允许捏合缩放,但它也会显示缩放覆盖控件 (Galaxy S3)。为了禁用屏幕缩放工具,但保留捏合缩放功能,您还需要调用 webView.setDisplayZoomControls(false)。
    • ^webView.getSettings().setDisplayZoomControls(false);
    • 所有这些都不适合我。试试这个网站,例如:“nbc26.com/robocalls/…”。它不允许我放大。它真的对你有用吗?请显示它的完整代码。
    • 如果有人在看这个答案并想知道 webview 对象来自哪里,您可以通过WebView webView = (WebView) appView.getEngine().getView(); 获取它,如this comment. 所示
    • 如果您使用 Xamarin.Android Web 视图渲染器,则代码如下 Control.Settings.BuiltInZoomControls = true; Control.Settings.SetSupportZoom(true); Control.Settings.DisplayZoomControls = false;
    【解决方案2】:

    使用这些:

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

    【讨论】:

    • 加1,为答案..帮助我。
    • 是的,setBuiltInZoomControls(true) 和 setDisplayZoomControls(false) 对我有用。
    【解决方案3】:

    检查您是否没有 ScrollView 包装您的 Webview

    就我而言,这就是问题所在。看起来 ScrollView 妨碍了捏合手势。

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

    【讨论】:

    • 非常适合我。现在我可以完全删除我的嵌套滚动视图了!
    • 当你可以添加 android:fillViewport= true
    【解决方案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相关的问题,这是解决我问题的关键!谢谢!
    【解决方案5】:

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

    webView.getSettings().setBuiltInZoomControls(true);
    

    通过这行代码,您可以在 WebView 中启用缩放功能,如果要删除提供的放大和缩小按钮,请添加以下代码行:

    webView.getSettings().setDisplayZoomControls(false);
    

    【讨论】:

      【解决方案6】:

      试试这个代码,我可以正常工作。

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

      【讨论】:

        猜你喜欢
        • 2017-10-28
        • 2020-03-30
        • 1970-01-01
        • 2011-06-28
        • 1970-01-01
        • 2016-02-10
        • 1970-01-01
        • 1970-01-01
        • 2011-11-18
        相关资源
        最近更新 更多