最近一個項目中使用了DayNight 主題來實現(xiàn)換膚效果。大概就是創(chuàng)建一個新的values-night把再新建一個對應(yīng)資源,把夜間模式的顏色在這里設(shè)置下。這樣再切換到夜間模式時就會使用values-night的資源。
但今天偶然發(fā)現(xiàn)一個問題,場景如下:
打開App進入主頁后會查詢活動接口,然后彈出一個Dialog彈窗,里面包含了WebView。但是當(dāng)關(guān)閉時發(fā)現(xiàn)當(dāng)前MainActivity的換膚本來在深夜模式下卻顯示了白天模式的UI。 不彈就沒有問題。 根據(jù)彈窗內(nèi)容一一排除,發(fā)現(xiàn)干掉WebView 就沒有問題。
原因估計是API 影響的
webview resets daynight resources
https://developer.android.google.cn/jetpack/androidx/releases/appcompat?hl=vi:

image.png
目前解決方案 發(fā)現(xiàn)只要加載一次后就會正常顯示所以如下 在Application初始化夜間模式中提前加載:

image.png