【发布时间】:2011-12-26 11:56:27
【问题描述】:
我正在开发一个应用程序,我必须在其中使用 web 视图。我的问题是我们可以停止 WEBVIEW 内置的滚动功能吗?
我已经尝试过这样的:
in onScrollChanged super.scroll(0,0);
但这对我没有帮助。我正在寻找可以使用 webview 设置停止缩放的东西...
除此之外,任何有更好想法的人都会很棒。
【问题讨论】:
我正在开发一个应用程序,我必须在其中使用 web 视图。我的问题是我们可以停止 WEBVIEW 内置的滚动功能吗?
我已经尝试过这样的:
in onScrollChanged super.scroll(0,0);
但这对我没有帮助。我正在寻找可以使用 webview 设置停止缩放的东西...
除此之外,任何有更好想法的人都会很棒。
【问题讨论】:
终于我自己找到了答案..: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 页面将被调用。 干杯!!!
【讨论】:
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);
}
});
【讨论】:
我可以建议从另一个角度来看问题。当我遇到类似问题时,这对我有帮助。我发现 html 元标记“viewport”对 WebView 有很大影响,特别是如果指定不正确。如果网页是由您开发和维护的,那么您可以在您的网页中使用以下元标记:
<meta name="viewport" content="width=device-width; user-scalable=0;"/>
【讨论】: