안드로이드 스튜디오
[안드로이드 스튜디오 코틀린] Jetpack Compose Material2에서 Material 3로 바뀌면서 Color Error
권송미
2024. 4. 30. 18:35
728x90
반응형
Material2까지는 Colors를 사용하여 색상을 사용하였지만,
Material 3에서는 ColorScheme를 사용해야 한다.
Material 2에서는 아래와 같이 사용했다.
Material 3 에서는 이렇게 바뀌었다.
공식 홈페이지에서 Color 부분을 본다면,
import androidx.compose.material.lightColors
import androidx.compose.material.darkColors
val AppLightColors = lightColors(
// M2 light Color parameters
)
val AppDarkColors = darkColors(
// M2 dark Color parameters
)
val AppColors = if (darkTheme) {
AppDarkColors
} else {
AppLightColors
}
위처럼 사용했던 코드를
import androidx.compose.material3.lightColorScheme
import androidx.compose.material3.darkColorScheme
val AppLightColorScheme = lightColorScheme(
// M3 light Color parameters
)
val AppDarkColorScheme = darkColorScheme(
// M3 dark Color parameters
)
val AppColorScheme = if (darkTheme) {
AppDarkColorScheme
} else {
AppLightColorScheme
}
이렇게 사용하라고 나와있다.
lightColors -> lightColorScheme
또 중요한 부분은 명칭을 잘 확인해야 한다. primaryVariant가 Secondary가 되었다 !!!!!
이 부분이 제일 헷갈릴 것 같다.
M2에서는 발생하지 않는 Error가 M3일 때 발생한다. 명칭이 바뀌었기 때무네.......
또 다른 바뀐 점은
M2일 때, isLight가 M3에서는 사라졌다.
isLight 매개변수가 없다 ! 때문에 isLight가 필요한 항목을 테마 수준에서 모델링 해야 한다고 써있다..
자세한건 아래 공식 사이트를 참고하자 !
https://developer.android.com/develop/ui/compose/designsystems/material2-material3?hl=ko#m3_3
728x90
반응형