以下を使用してダークモードを実装しました。
when (themePref) {
ThemeUi.LIGHT -> {
AppCompatDelegate.setDefaultNightMode(MODE_NIGHT_NO)
}
ThemeUi.DARK -> {
AppCompatDelegate.setDefaultNightMode(MODE_NIGHT_YES)
}
ThemeUi.AUTO_BEFORE_DARK, ThemeUi.AUTO_BEFORE_LIGHT ->
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM)
}
これは Application クラスの作成中 (およびユーザーがアプリの設定でモード間をスワイプしたいとき) に適用されます。
電話モードに引き続き従う 1 つのドローアブルを除いて、すべて正常に動作します。アプリを初めて起動すると、drawable は light フォルダーに取り込まれますが、携帯でダークモードをオン -> オフ -> オンにしてからアプリを再起動すると、今度はdrawable が黒くなり、他のすべてがライトモードであっても。
リンクされているかどうかはわかりませんが、png、hdpi、mdpi、xhdpi、xxhdpi、およびxxxhdpi(ライトモードとダークモードの両方)にある唯一のドローアブルの1つです
このドローアブルに SVG を使用できません。解決策が見つかりませんでした。
私のアプリのテーマは Theme.AppCompat.DayNight.DarkActionBar です
私のアプリがダークモードで電話がライトモードの場合、ドローアブルはライトになります。