ダークモードがどうかを判定するには、以下のライブラリを使用します。
導入
repositories {
...
maven("https://jitpack.io")
}
dependencies {
implementation("com.github.Dansoftowner:jSystemThemeDetector:3.6")
}
現在の設定を取得する
ダークモードに設定されているかどうかを取得します。
val detector = OsThemeDetector.getDetector()
println(detector.isDark)
設定の変更を検知する
ダークモードの設定が変更されたことを検知します。
val detector = OsThemeDetector.getDetector()
val listener: (Boolean) -> Unit = { isDark: Boolean -> println(isDark) }
detector.registerListener(listener)
Compose For Desktopのサンプル
ダークモードに設定されているかどうかを表示するサンプルプログラムです。
@Composable
@Preview
fun App() {
val detector = OsThemeDetector.getDetector()
var darkMode: Boolean by remember { mutableStateOf(detector.isDark) }
val listener: (Boolean) -> Unit = { isDark: Boolean -> darkMode = isDark }
detector.registerListener(listener)
MaterialTheme {
Text(text = if (darkMode) "Dark Mode" else "Light Mode")
}
}