如何停止 Android 中 WebView 的内部滚动?
How to stop INTERNAL scrolling of WebView in Android?
我的应用程序中有一个 WebView,其中呈现了 HTML 内容,并且 HTML 内容的大小大于 WebView 的大小。由于当用户在其上拖动 his/her 手指时,内容会在其中滚动。我想阻止内容发生这种内部滚动。
这是我目前已经尝试过的方法:
WebView view = new WebView(context); //context is of Activity
view.setHorizontalScrollBarEnabled(false);
view.setVerticalScrollBarEnabled(false);
view.setScrollContainer(false);
并在 CSS 中为:
overflow : hidden !important;
请提出解决方案,除了 禁用手指拖动 (Hack) for webview 因为这会干扰我的其他功能,如下所示:
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if(motionEvent.getAction() == MotionEvent.ACTION_MOVE)
{
return true;
}
}
向您的 webview 添加一个容器,该容器包装您的所有内容并位于 body
元素的正下方,如下所示:
<body id="myBody">
<div class="container">
<!-- All your content goes in this new div.container -->
</div>
</body>
然后,将此 CSS 添加到您的页面:
body {
height: 100%;
width: 100%;
pointer-events: none;
}
div.container {
overflow: hidden!important;
height: 100%;
width: 100%;
}
问题是尽管有溢出规则,WebView 似乎忽略了 body
上的滚动,并且由于 body
扩展以满足其内容,它总是认为还有更多内容需要滚动到。这是在将 body 重置为 WebView 的大小,然后使用容器来防止 body 扩展到 WebView 之外并包含更多内容。
希望对您有所帮助。
我的应用程序中有一个 WebView,其中呈现了 HTML 内容,并且 HTML 内容的大小大于 WebView 的大小。由于当用户在其上拖动 his/her 手指时,内容会在其中滚动。我想阻止内容发生这种内部滚动。
这是我目前已经尝试过的方法:
WebView view = new WebView(context); //context is of Activity
view.setHorizontalScrollBarEnabled(false);
view.setVerticalScrollBarEnabled(false);
view.setScrollContainer(false);
并在 CSS 中为:
overflow : hidden !important;
请提出解决方案,除了 禁用手指拖动 (Hack) for webview 因为这会干扰我的其他功能,如下所示:
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if(motionEvent.getAction() == MotionEvent.ACTION_MOVE)
{
return true;
}
}
向您的 webview 添加一个容器,该容器包装您的所有内容并位于 body
元素的正下方,如下所示:
<body id="myBody">
<div class="container">
<!-- All your content goes in this new div.container -->
</div>
</body>
然后,将此 CSS 添加到您的页面:
body {
height: 100%;
width: 100%;
pointer-events: none;
}
div.container {
overflow: hidden!important;
height: 100%;
width: 100%;
}
问题是尽管有溢出规则,WebView 似乎忽略了 body
上的滚动,并且由于 body
扩展以满足其内容,它总是认为还有更多内容需要滚动到。这是在将 body 重置为 WebView 的大小,然后使用容器来防止 body 扩展到 WebView 之外并包含更多内容。
希望对您有所帮助。