KotlinでOSがダークモードに設定されているかどうかを取得する

ダークモードがどうかを判定するには、以下のライブラリを使用します。

導入

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")
    }
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください