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. android webview js 交互
  2. Android弹出菜单的灵活运用(自定义AlertDialog)
  3. Android(安卓)TableLayout
  4. 【Android(安卓)多媒体开发】 MediaPlayer 状态机 接口 方法 解
  5. Android启动流程简析(三)
  6. Android:Android(安卓)Studio 优化
  7. android 画图之bitmap(一)
  8. Android(安卓)app ERR_UNKNOWN_URL_SCHEME
  9. Android之Handler的postDelayed()方法的用法

随机推荐

  1. Android(安卓)Broadcast receiver 编程
  2. Oracle Android(安卓)Apps - 'Oracle Now
  3. android通过chmod命令实现文件权限修改
  4. android:shape的使用
  5. ADT下载地址(含各版本),最新ADT-23.0.6
  6. Android适配器及其控件
  7. android library projects cannot be lau
  8. Android的网络与通信
  9. Android中的lcd_density设置
  10. Android(安卓)display架构分析-SW架构分