欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

安卓WebView与ScrollView嵌套大面积空白解决小技巧

程序员文章站 2022-04-04 10:22:12
...

最近使用到WebView,使用过程中遇到了以下的问题,和大家分享一下。 首先看一下控制webView宽度的方法: 这是API对于此方法的说明:当false时,此WebView的宽度始终是Web页面CSS中控制的宽度,因此要适配屏幕此方法要为true。 API说明:这种加载模式,是缩小

最近使用到WebView,使用过程中遇到了以下的问题,和大家分享一下。

首先看一下控制webView宽度的方法:

安卓WebView与ScrollView嵌套大面积空白解决小技巧

这是API对于此方法的说明:当false时,此WebView的宽度始终是Web页面CSS中控制的宽度,因此要适配屏幕此方法要为true。

安卓WebView与ScrollView嵌套大面积空白解决小技巧

API说明:这种加载模式,是缩小内弄以适配屏幕宽度。

所以,WebView适配屏幕的时候要将这2个方法都设置为true

加载Web页面的方式:

loadUrl (String url) 直接加载一个页面的域名

loadData (String data,String mimeType, String encoding) 加载一段HTML,mimeType="text/html" encoding="utf-8"

loadDataWithBaseURL (String baseUrl,String data, String mimeType, String encoding, String historyUrl) 与上面用法相同


了解了安卓WebView关于宽度适配的相关属性,方法,尝试了获取webView的高度设置,都没有达到满意的效果.

回到正题,为了解决大面积空白的问题,我使用了下面的小技巧勉强达到了想要的效果,只不过代价是放弃了webView的缩放,如果哪位大神有好的解决方案,敬请赐教。

wv.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
		wv.setVerticalScrollBarEnabled(false);
		wv.setVerticalScrollbarOverlay(false);
		wv.setHorizontalScrollBarEnabled(false);
		wv.setHorizontalScrollbarOverlay(false);


将webView的横向竖向的scrollBar都禁用掉,将不再与ScrollView冲突,解决了大面积空白的问题。