webview键盘自适应_WebView自适应适配

对于网页的自适应设置,通常情况,我们加载后超出屏幕宽度的一般是 img 或者 video 标签或者文字,这类标签可以使用css 或者网上盛行的三个设置做到适配:

setting.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);

setting.setUseWideViewPort(true);

setting.setLoadWithOverviewMode(true);

但是这个方法不一定有效,android 4.4 后因为内核发生变动,这个时候一般情况下,需要设置图片等标签设置高度为auto可以解决问题。

img style='max-width:90%;height:auto;

如无法修改代码html代码,可在本地替换的方式,可以引用 jsoup

Documentdoc_Dis = Jsoup.parse(content);

Elementsele_Img = doc_Dis.getElementsByTag("img");

if (ele_Img.size() != 0) {

for (Elemente_Img:ele_Img) {

e_Img.attr("width", "100%");

//一定要设置 auto 不要控制其高度,让其自己跟随宽度变化情况调整

e_Img.attr("height", "auto");

}

}

StringnewHtmlContent = doc_Dis.toString();

mWebview.loadDataWithBaseURL(null, newHtmlContent, "text/html", "utf-8", null);

但如果出现了 table 这种标签,即 table 适配屏幕,很可能css都失效,也无法适配,坑了我好久。。。。这时,这需要table高度为auto

可使用js脚本来替换页面内容,达到自适应效果。

"

"var tables = document.getElementsByTagName('table');" + // 找到table标签

"for(var i = 0; i

"tables[i].style.width = '100%';" + // 宽度改为100%

"tables[i].style.height = 'auto';" +

"}" +

""+

说明一下: 上面使用 js 脚步适配,请写到 内容加载之后,即是

内容 ,为什么呢?有基础的人都知道,html 是解析性语言,从上到下,你要先加载好 html 再使用 js 改变,除非js 包在函数里面。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值