android theme 다크 테마 구현. kotlin

스타일은 DayNight 를 상속받게 해야한다. 
이후 setTheme 로 적용한다.
setTheme 실행후 현재 액티비티에 적용하려면 액티비티 리스타트를 해야 한다.


styles.xml


<style name="AppTheme" parent="Theme.AppCompat.DayNight.DarkActionBar">


코드.


val LIGHT_THEME = "light"
val DARK_THEME = "dark"
val DEFAULT_THEME = "system"
fun setTheme(themeName: String) {
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)














댓글

이 블로그의 인기 게시물

Unity3D git 저장소에 올릴때 필요없는 파일 제외하기. gitignore

콘탁 Kontakt, KOMPLETE 저렴한 구입 방법.

플러터(flutter) 개발 참고 사이트들.