Android get height of webview content once rendered

后端 未结 5 1419
忘了有多久
忘了有多久 2020-12-14 18:44

I\'m trying to get the height of a webview once it has been rendered. It always returns null, I\'ve tried getHeight, getMeasuredHeight, getCo

5条回答
  •  猫巷女王i
    2020-12-14 19:06

    I chose this approach

    const val heightWebViewJSScript = "(function() {var pageHeight = 0;function findHighestNode(nodesList) { for (var i = nodesList.length - 1; i >= 0; i--) {if (nodesList[i].scrollHeight && nodesList[i].clientHeight) {var elHeight = Math.max(nodesList[i].scrollHeight, nodesList[i].clientHeight);pageHeight = Math.max(elHeight, pageHeight);}if (nodesList[i].childNodes.length) findHighestNode(nodesList[i].childNodes);}}findHighestNode(document.documentElement.childNodes); return pageHeight;})()"

    webView.webViewClient = object : WebViewClient() {
    
                override fun onPageFinished(view: WebView, url: String) {
                    webView.evaluateJavascript(heightWebViewJSScript
                    ) { height ->
                        val params = itemView.layoutParams
                        // params.height
                    }
                }
            }

提交回复
热议问题