【问题标题】:Any way to stop WebView built in scrolling阻止内置滚动的 WebView 的任何方法
【发布时间】:2011-12-26 11:56:27
【问题描述】:

我正在开发一个应用程序,我必须在其中使用 web 视图。我的问题是我们可以停止 WEBVIEW 内置的滚动功能吗?

我已经尝试过这样的:

in onScrollChanged super.scroll(0,0);

但这对我没有帮助。我正在寻找可以使用 webview 设置停止缩放的东西...

除此之外,任何有更好想法的人都会很棒。

【问题讨论】:

    标签: android webview scroll


    【解决方案1】:

    终于我自己找到了答案..:P

    我们可以通过在页面中执行一些 javascript 操作来停止或开始页面的滚动和缩放。这是javascript代码:

    function stopScroll()
    {
        document.ontouchmove = function(e){ e.preventDefault(); }
    }
    
    function startScroll()
    {
        document.ontouchmove = function(e){ return true; }
    }
    

    现在您可以使用您的 android webview 调用这些函数,方法如下:

    myWebView.loadUrl("javascript:stopScroll()");
    

    通过调用上面的函数 stopScroll 从 HTML 页面将被调用。 干杯!!!

    【讨论】:

    • 我们如何将javascript或javascript代码添加到android ..请告诉我一些教程
    • 制作一个包含javascript的简单/普通的html页面。并调用上述函数。
    • 您在资产或其他地方添加它的位置以及 html javascript.htm 的名称是什么我找不到您引用 HTML 文档的位置。请分享一些关于它的教程..
    • 是的,您可以在资产中添加 HTML 页面,或者您可以开发 HTML 字符串并将其加载到 webview 中。 stackoverflow.com/questions/5552578/…
    【解决方案2】:
    WebView WebView1 = (WebView) findViewById(R.id.webView1);
    
    //Only hide the scrollbar, not disables the scrolling:
    WebView1.setVerticalScrollBarEnabled(false);
    WebView1.setHorizontalScrollBarEnabled(false);
    
    //Only disabled the horizontal scrolling:
    WebView1.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
    
    //To disabled the horizontal and vertical scrolling:
    webview.setOnTouchListener(new View.OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {
            return (event.getAction() == MotionEvent.ACTION_MOVE);
        }
    });
    

    //details here

    【讨论】:

      【解决方案3】:

      我可以建议从另一个角度来看问题。当我遇到类似问题时,这对我有帮助。我发现 html 元标记“viewport”对 WebView 有很大影响,特别是如果指定不正确。如果网页是由您开发和维护的,那么您可以在您的网页中使用以下元标记:

      <meta name="viewport" content="width=device-width; user-scalable=0;"/>
      

      【讨论】:

      • 感谢您的回复.. 另外您能告诉我如何停止或再次开始滚动吗?
      • 在视口标签的帮助下,您可以设置 user-scalable=1。它将启用缩放,因此如果用户放大网页,滚动将起作用。网页会导致滚动,因此构建正确的网页比尝试调整网页视图更重要。如果是你的网站,我会专注于网页设计。
      • 很好,但我只找到了如何停止缩放而不是滚动...:S
      • 您能否截取一下您当前拥有的 webview 内容。它可能会更好地了解您要实现的目标。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      相关资源
      最近更新 更多