WebView底部空白问题

2019-10-28  本文已影响0人  枯木流年

在实际项目中如果使用webview加载html。
当出现WebView底部大片空白时,可以尝试以下方法:
1、在webview加载完成时,重新设置他的大小

 webview.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {

                //这个是一定要加上那个的,配合scrollView和WebView的height=wrap_content属性使用
                int w = View.MeasureSpec.makeMeasureSpec(0,
                        View.MeasureSpec.UNSPECIFIED);
                int h = View.MeasureSpec.makeMeasureSpec(0,
                        View.MeasureSpec.UNSPECIFIED);
                //重新测量
                webview.measure(w, h);

                super.onPageFinished(view, url);
            }
        });

2、在webview加载完成时,给html注入js,并重新设置webview大小

webview.setWebViewClient(new WebViewClient() {  
 
               @Override  
 
               public void onPageFinished(WebView view, String url) {  
 
                   webview.loadUrl("javascript:App.resize(document.body.getBoundingClientRect().height)");  
 
                   super.onPageFinished(view, url);  
 
               }  
 
});  
 
webview.addJavascriptInterface(this, "App");

@JavascriptInterface  
public void resize(final float height) {  
 
           runOnUiThread(new Runnable() {  
 
               @Override  
 
               public void run() {  
 
                   //Toast.makeText(getActivity(), height + "", Toast.LENGTH_LONG).show();  
 
                   mWebView.setLayoutParams(new LinearLayout.LayoutParams(getResources().getDisplayMetrics().widthPixels, (int) (height * getResources().getDisplayMetrics().density)));  
 
               }  
 
            });  
 
}  

UNSPECIFIED 未指明模式父布局不限制子布局的大小,对其不做任何限制。
EXACTLY 精确模式父布局可以确定子布局的最终大小。
AT_MOST 至多模式父布局确定不了子布局的最终大小,但是子布局的大小不能超过父布局给出的大小

上一篇下一篇

猜你喜欢

热点阅读