Android WebView为滚动条留下空间

61

在我的WebView中,我有一些块级元素具有背景颜色(不同于白色)。然而,背景颜色并没有完全覆盖整个屏幕。相反,它在右侧留下了一个小白色条纹,用于滚动条的位置。现在,我希望滚动条仅在滚动时出现(并在用户完成滚动后淡出)。我尝试过:

android:fadingEdge="vertical|horizontal"
android:fadeScrollbars="true"
android:scrollbarStyle="insideOverlay" (and all other options)

此外,我的HTML在 <head> 中包含以下内容:

<meta name="viewport" content="target-densitydpi=device-dpi" />

为了防止缩放并且默认不缩小。

但是,我无法弄清如何去除白色条纹。有什么想法吗?


1
一个明显(但不好的)解决方案是将 WebView 包装在 ScrollView 中,然后在其上设置 scrollbarStyle="insideOverlay" - Felix
此外,我的当前解决方案是 android:scrollbars="none",它永久隐藏了滚动条(以及白色区域)。然而,这并不是最优解。 - Felix
2个回答

116

我也遇到了这个问题,找到了答案:这里

看起来你提到的android:scrollbarStyle="insideOverlay"是正确的,只是因为某些错误在XML中定义它时不能正常工作。如果使用以下代码,则可以正常工作:

webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);

很烦人。


2
顺便提一句,对于WebViews的背景颜色也是如此。您必须使用webView.setBackgroundColor(...)否则它实际上不会应用。 - Yaks

2
public void setVerticalScrollbarOverlay (boolean overlay)

自API Level 1以来
指定垂直滚动条是否具有覆盖样式。
参数
overlay为TRUE时,垂直滚动条应具有覆盖样式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接