Abd*_*lat 5 css android android-webview android-dark-theme
我似乎无法让 android web view 使用深色主题或使用
@media (prefers-color-scheme: dark)
Run Code Online (Sandbox Code Playgroud)
我正在使用带有 DayNight 主题的 AndroidX
有没有人有在 api 29 之前向后兼容的解决方案?
添加到您应用程序的 build.grade:
implementation "androidx.webkit:webkit:1.2.0"
Run Code Online (Sandbox Code Playgroud)
您可以在此处检查要使用的最新版本:
https://developer.android.com/jetpack/androidx/releases/webkit
如果您有一个扩展 WebView 的类,请将其添加到扩展类的构造函数中:
public MyWebView(Context context, AttributeSet attrs) {
super(context, attrs);
...
if (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) {
WebSettingsCompat.setForceDark(getSettings(), WebSettingsCompat.FORCE_DARK_ON);
}
...
}
Run Code Online (Sandbox Code Playgroud)
如果您有一个实例化 Web 视图的 Activity,请将其添加到该 Activity 的 onCreate 方法中:
myWebView = getViewById(R.id.web_content);
if (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) {
WebSettingsCompat.setForceDark(myWebView.getSettings(),
WebSettingsCompat.FORCE_DARK_ON);
}
Run Code Online (Sandbox Code Playgroud)
当然,您可能想要决定您想要哪种部队策略:
WebSettingsCompat.FORCE_DARK_ON
WebSettingsCompat.FORCE_DARK_OFF
WebSettingsCompat.FORCE_DARK_AUTO
Run Code Online (Sandbox Code Playgroud)
小智 0
对于运行低于 Android 10 的设备,您可以添加 androidx.webkit 依赖项并设置 webview 设置,如下所示:
if (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) {
WebSettingsCompat.setForceDark(myWebView.settings, WebSettingsCompat.FORCE_DARK_ON)
}
Run Code Online (Sandbox Code Playgroud)