android theme 다크 테마 구현. kotlin
스타일은 DayNight 를 상속받게 해야한다.
이후 setTheme 로 적용한다.
setTheme 실행후 현재 액티비티에 적용하려면 액티비티 리스타트를 해야 한다.
styles.xml
<style name="AppTheme" parent="Theme.AppCompat.DayNight.DarkActionBar">
코드.
val LIGHT_THEME = "light"fun setTheme(themeName: String) {
val DARK_THEME = "dark"
val DEFAULT_THEME = "system"
when (themeName) {
LIGHT_THEME -> {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
}
DARK_THEME -> {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
}
else -> {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM)
} else {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY)
}
}
}
}
액티비티 리스타트.
val intent: Intent = getIntent()
finish()
startActivity(intent)
댓글
댓글 쓰기