最近在做一些頁(yè)面詳情頁(yè)的時(shí)候,因?yàn)樾枰玫絅estedScrollView嵌套webview進(jìn)行部分網(wǎng)頁(yè)的顯示。因?yàn)橹坝玫氖?.4的android版本測(cè)試的,所有沒(méi)有發(fā)現(xiàn)問(wèn)題。
后來(lái)在android9.0的版本測(cè)試的時(shí)候,才發(fā)現(xiàn)會(huì)出現(xiàn):webview的頁(yè)面顯示為空白或者高度為0這兩種情況。 網(wǎng)上查了好多解決方案,基本都不能用,雖然有一個(gè)在onPageFinished里面重新設(shè)置webview的高度,但是這種限死高度的事情肯定是會(huì)有問(wèn)題的,所有基本也可以放棄這個(gè)方案。
最后通過(guò)測(cè)試webview的加載過(guò)程,在初始化的時(shí)候,預(yù)先加載一段內(nèi)容(什么內(nèi)容都可以),主要是讓webview能計(jì)算一次高度,后面再通過(guò)接口獲取到的url進(jìn)行加載loadUrl(url),就可以正常顯示了,完美解決問(wèn)題。
具體初始化如下
webView = findViewById(R.id.webView); WebSettings settings = webView.getSettings();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
webView.setWebChromeClient(new WebChromeClient());
webView.setWebViewClient(new SslWebViewClient());
webView.loadData("加載中...","text/html","UTF-8");
關(guān)鍵就是最后一行代碼的初始化。 然后通過(guò)接口獲取的到url數(shù)據(jù)進(jìn)行 webView.loadUrl(url); 此時(shí)就會(huì)愉快的發(fā)現(xiàn),空白或者高度為0的情況消失了,媽媽再也不用擔(dān)心我學(xué)習(xí)了。
歡迎關(guān)注本人公眾號(hào)和小程序,謝謝

公眾號(hào)

小程序