android 获取webView高度,设置webView高度

1、注入获取webView高度的js方法

        webView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
//                view.loadUrl(url);
                return true;//true时,不可点击跳页效果,false时,可以点击跳页
            }

            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                view.getSettings().setJavaScriptEnabled(true);
                webView.loadUrl("javascript:window.yxbl_app.getBodyHeight($(document.body).height())");//注入自定义方法——获取webview高度的方法
                super.onPageFinished(view, url);

            }
        });

 

 

2、调用已注入的js方法获取webview的高度

public static final String js2Android = "yxbl_app";
private int webViewHeight;
webView.loadUrl("https://www.csdn.net/");

webView.addJavascriptInterface(new WebViewJavaScriptFunction() {

    @Override
    public void onJsFunctionCalled(String tag) {
        // TODO Auto-generated method stub
    }
    /**
     * 高度
     */
    @JavascriptInterface
    public void getBodyHeight(String number) {
        webViewHeight =  Integer.parseInt(number.split("[.]")[0]);
        Log.i("lgqqqqq======  ", "webViewHeight" + webViewHeight);
        Message msg = new Message();
        msg.what = 1;
        handler.sendMessage(msg);//用activity中的handler发送消息
    }
},js2Android);

 

3、设置webView高度

@SuppressLint("HandlerLeak")
private Handler handler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        switch(msg.what){
            case 1 :
                LinearLayout.LayoutParams linearParams2 =(LinearLayout.LayoutParams)webView.getLayoutParams(); //取控件textView当前的布局参数
                linearParams2.height = (int)(webViewHeight*getResources().getDisplayMetrics().density)/2;// 控件的高强制设成20
                webView.setLayoutParams(linearParams2);

                break;
        }
    }
};

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值