网络视图高度 returns 0

webview height returns 0

当我尝试使用下面的代码时 webview.heigth returns 0。我不明白代码有什么问题。我也尝试了 measuredheight 而不是高度,但结果仍然相同。

 if (!TextUtils.isEmpty(realtyDetail.descriptionHtml)) {
        webViewHtml.loadData(FormatUtil.formatSpecialCharsForWebView(realtyDetail.descriptionHtml), "text/html; charset=utf-8", "UTF-8")
        ellWebView.visible()
        txtDescription.visible()
        webViewHtml.settings.javaScriptEnabled = true

        val vto = view!!.viewTreeObserver;
        vto.addOnGlobalLayoutListener(object : ViewTreeObserver.OnGlobalLayoutListener {
            override fun onGlobalLayout() {
                if (vto.isAlive) {
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
                        vto.removeOnGlobalLayoutListener(this)
                    } else {
                        @Suppress("DEPRECATION")
                        vto.removeGlobalOnLayoutListener(this)
                    }
                    if (!webViewHtmlSet && webViewHtml != null) {
                        val limit = DeviceUtil.convertDpToPixel(400f, context)

                        if (webViewHtml.height > limit) {
                            setWebView(limit)
                        }
                    }
                }
            }
        })

布局:

 <WebView
        android:id="@+id/webViewHtml"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

html:(我的 webview 高度是 wrap_content 但只低于 html 不工作)

<font style="font-size:22px"><font style="background-color:#00ff00"><font style="color:#000000"><i>KOCAELİ KARAMÜRSEL AVCİ KOYDE KÖY CIVARI MEVKİNDE 723M2 MUSTEKİL PARSEL SATILIK TIR <br/></i></font></font></font><font style="font-size:22px"><font style="background-color:#00ff00"><font style="color:#000000"><i><br/></i></font></font></font><font style="font-size:22px"><font style="background-color:#00ff00"><font style="color:#000000"><i>PARKE YOLA CEPHE LI DÜMDÜZ &#37;30 KONUT IMARLI ARSA,DIR DÜMDÜZ CEVİZ BAHÇESİ ELEKTRİK HATTI ŞEBEKE SU HATTI YANINDAN GEÇMEKTEDİR KANALIZASYON TÜM ALT YAPILARI TAMAMLANMIŞ TIR TOPLU ULAŞIM VARDIR ARADIĞINIZ HER ŞEY YÜRÜ ME MESAFESINDE DİR CAMI KAHVANE BERBER NALBUR PETROL OFİSİ SAĞLIK OCAĞI İTFAİYE ILKÖĞRETİM <br/></i></font></font></font><font style="font-size:22px"><font style="background-color:#00ff00"><font style="color:#000000"><i><br/></i></font></font></font><font style="font-size:22px"><font style="background-color:#00ff00"><font style="color:#000000"><i>Not istek halinda yan KOMŞU  parselde SATILIK 1013m2<br/></i></font></font></font><font style="font-size:22px"><font style="background-color:#00ff00"><font style="color:#000000"><i><br/></i></font></font></font><font style="font-size:22px"><font style="background-color:#00ff00"><font style="color:#ff0000"><i>DAHA DETAYLI BILGI ALMAK İÇİN BIZI ARAYINIZ </i></font></font></font>

顺便说一句,这在模拟器上是有效的,但在真实设备上 html 不起作用,高度 returns 0.

viewTreeObserver 附加到 WebViewClientonPageFinished() 回调的 WebView,如下所示。它给出了您的 webView 的确切高度。

  webView.webViewClient = Client()
    webView.loadData(Base64.encodeToString("<font style=\"font-size:22px\"><font style=\"background-color:#00ff00\"><font style=\"color:#000000\"><i>KOCAELİ KARAMÜRSEL AVCİ KOYDE KÖY CIVARI MEVKİNDE 723M2 MUSTEKİL PARSEL SATILIK TIR <br/></i></font></font></font><font style=\"font-size:22px\"><font style=\"background-color:#00ff00\"><font style=\"color:#000000\"><i><br/></i></font></font></font><font style=\"font-size:22px\"><font style=\"background-color:#00ff00\"><font style=\"color:#000000\"><i>PARKE YOLA CEPHE LI DÜMDÜZ &#37;30 KONUT IMARLI ARSA,DIR DÜMDÜZ CEVİZ BAHÇESİ ELEKTRİK HATTI ŞEBEKE SU HATTI YANINDAN GEÇMEKTEDİR KANALIZASYON TÜM ALT YAPILARI TAMAMLANMIŞ TIR TOPLU ULAŞIM VARDIR ARADIĞINIZ HER ŞEY YÜRÜ ME MESAFESINDE DİR CAMI KAHVANE BERBER NALBUR PETROL OFİSİ SAĞLIK OCAĞI İTFAİYE ILKÖĞRETİM <br/></i></font></font></font><font style=\"font-size:22px\"><font style=\"background-color:#00ff00\"><font style=\"color:#000000\"><i><br/></i></font></font></font><font style=\"font-size:22px\"><font style=\"background-color:#00ff00\"><font style=\"color:#000000\"><i>Not istek halinda yan KOMŞU  parselde SATILIK 1013m2<br/></i></font></font></font><font style=\"font-size:22px\"><font style=\"background-color:#00ff00\"><font style=\"color:#000000\"><i><br/></i></font></font></font><font style=\"font-size:22px\"><font style=\"background-color:#00ff00\"><font style=\"color:#ff0000\"><i>DAHA DETAYLI BILGI ALMAK İÇİN BIZI ARAYINIZ </i></font></font></font>".toByteArray(), Base64.NO_PADDING), "text/html", "base64")

.....

private inner class Client: WebViewClient(){
        override fun onPageFinished(view: WebView?, url: String?) {
            super.onPageFinished(view, url)
            webView.viewTreeObserver.addOnGlobalLayoutListener {
                Log.d("xifi", "${webView.height}")
            }
        }
    }

这是我为您 HTML 得到的输出

这是显示网页的模拟器