解決Webview滑動黑屏外加顯示黑屏的問題
阿新 • • 發佈:2018-12-30
本文自己總結而來,歡迎大家轉發
- 最近在做專案時處理bug的時候,發現有的華為手機跟oppo手機運用webview的時候會出現問題,特將解決方法發上來與大家分享
一開始華為手機滑動黑屏的時候,就上網查,一般都是說法都是將改activity的硬體加速關掉,但是原先程式碼裡面已經關掉,但是還是顯示這樣,沒辦法,正好最近看了一個騰訊三方開源的X5瀏覽器核心,webview中的類的命名跟原生的命名都一樣,就是修改一下導的包就好:
所用的類:
系統核心 | SDK核心 |
---|---|
android.webkit.WebView | com.tencent.smtt.sdk.WebView |
android.webkit.WebViewClient | com.tencent.smtt.sdk.WebViewClient |
android.webkit.WebSettings | com.tencent.smtt.sdk.WebSettings |
android.webkit.WebChromeClient | com.tencent.smtt.sdk.WebChromeClient |
在XML中的設定
<com.tencent.smtt.sdk.WebView
android:id="@+id/forum_context"
android: layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="5dp"
android:paddingRight="5dp" />
剩下的跟原先的程式碼設定就好,bug解除,滑動之後不顯示黑屏了。
後來oppo測試機一開始展示的時候就顯示黑屏
先將原先的WebView的一些設定先遮蔽掉,顯示就沒有問題,後續在配置中進行一一排除:
webView.setBackgroundColor(Color.TRANSPARENT); // WebView 背景透明效果
發現是這段程式碼的問題,將其遮蔽掉,顯示正常
總結
遇到黑屏問題先在配置檔案中設定activity:
android:hardwareAccelerated="false"
將硬體加速關閉再進行操作。
騰訊X5核心瀏覽器官網說載入速度比原生的快30% 個人用起來感覺還不錯,不過官方論壇裡面還有很多bug要解決,不過對於需求不大,只是展示一下頁面外加與js互動一下的話應該也足夠了