
앞 게시물에 이어서 전체 배경 기본 컬러 지정하는 법!
Jetpack Compose로 사용하고 있기 때문에, 앞 게시물에 적어둔 Color.kt 를 기본으로 하여 지정했다
Theme.kt
background 색을 DarkGreen10으로 설정하면 이후 MaterialTheme.colorScheme.background에서 자동으로 불러옴
surface도 추가하면 기본 배경 색도 일치하게 됨
private val LightColorScheme = lightColorScheme(
background = DarkGreen10,
surface = DarkGreen10
)
MainActivity.kt
Surface는 Material Design 구조에서 배경을 적용해주는 역할
앱 루트에 한 번만 설정하면 모든 화면에 적용
setContent {
PickTimeAppTheme {
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background // 여기서 설정됨
) {
//전체 앱 UI 부분
MainScreen()
}
}
}
적용이 안된다면 확인할 것
위의 설정을 따라했는데도 적용이 안돼서 확인해보니 Theme.kt에 `dynamicColor = true` 코드가 있어 배경 색이 덮어씌워지고 있었다
fun PickTimeAppTheme(
darkTheme: Boolean = isSystemInDarkTheme(),
dynamicColor: Boolean = true,
content: @Composable () -> Unit
)
해결 방법
MainActivity.kt에서 앱을 호출할 때 아래와 같이 수정하면 잘 적용된다
setContent {
PickTimeAppTheme(dynamicColor = false) {
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background
) {
MainScreen()
}
}
}
개별 페이지 수동 적용
@Composable
fun MyPageScreen() {
Box(
modifier = Modifier
.fillMaxSize()
.background(DarkGreen10)
) {
// Content
}
}
'개발새발개발 > Kotlin' 카테고리의 다른 글
[Kotlin] 안드로이드 스튜디오 프론트엔드가 백엔드와 API 통신하는 법(로그인 구현) (1) | 2025.03.27 |
---|---|
[Kotlin] 안드로이드 전역 폰트, 사이즈, 굵기 설정하기 Typography 설정 (0) | 2025.03.26 |
[Kotlin] 안드로이드 스튜디오 기본 컬러 정의하는 법(기본, Jetpack) (0) | 2025.03.23 |
[Kotlin] 안드로이드 스튜디오 프로젝트 기본 구조 이해하기 (0) | 2025.03.17 |
[Kotlin] 안드로이드 앱의 구조 및 동작 원리, 자바가 아닌 코틀린을 사용하는이유 (1) | 2025.03.16 |