继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

ScrollView嵌套WebView显示问题

浮云间
关注TA
已关注
手记 146
粉丝 16
获赞 47

官方是不建议滚动组件相互嵌套的,但是碍于奇怪的需求,有时候又不可避免;  最近需要一种效果:Button随WebView一起滚动,所以用到了ScrollView与WebView的嵌套。这样的使用产生了两个问题:


    1) 部分机型WebView在切换页时,会产生宽度与高度重定位异常,也就是显示不正常

    2)滚动事件的相互冲突问题

    这里记录一下重定位问题的解决方案,网上思路,名曰Js注入,非原创!

    1) 添加调用引用,便于Js调用本地重新测量尺寸


    webView.addJavascriptInterface(this, "App");

    2)在onPageFinish中,添加Js注入


     webview.loadUrl("javascript:App.resize(document.body.getBoundingClientRect().height)");


    3)在当前类中添加调用方法,部分版本需要添加@JavaScriptInterface


     public void resize(final float height) {

runOnUiThread(new Runnable() {

@Override

public void run() {

mBottomWebView.setLayoutParams(new LinearLayout.LayoutParams(getResources().getDisplayMetrics().widthPixels,                                 (int) (height *getResources().getDisplayMetrics().density)));

}

});

}

原文链接:http://www.apkbus.com/blog-192385-59984.html

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP