0
1

More than 3 years have passed since last update.

WebView で forceDark を設定した時のメモ

Last updated at Posted at 2019-11-04

Android の WebView で forceDark を適用するのに調査したので、メモとして残します。

WebView で forceDark を使う場面自体少ないかと思いますが、WebView で表示させてるプライバシーポリシーやライセンスの画面を黒くするために調査しました。

Light テーマの場合

Theme.AppCompat.Light など DayNight テーマを使用していない場合はアプリのテーマに android:forceDarkAllowed="true" を追加することで WebView を強制的に黒くさせることができます。

この方法の場合はアプリのテーマで強制的に色を黒くさせるため、必要な画面のみ適用させる必要があります。

DayNight テーマの場合

デフォルトではテーマなどの forceDarkAllowed を参照して黒にするかを切り替えるようになっていますが、 DayNight テーマを使用している場合は forceDarkAllowed が適用されないため、WebSettings.setForceDark を使用してコードで指定する必要があります。

webView.apply {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
        settings.forceDark = if (isDarkTheme()) {
            WebSettings.FORCE_DARK_ON  //強制的に黒くする
        } else {
            WebSettings.FORCE_DARK_OFF
        }
    }
}

WebSettings.setForceDark は API 29 以降で使えます。

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1