์๋๋ก์ด๋์์ Status Bar(์ํ๋ฐ)์ ์์์ ๋ณ๊ฒฝํ๋ ๊ฒ์ ๋งค์ฐ ๋งค์ฐ ํํ ์๋ ์ผ์ด๋ค..
(์๋ง ๋๋ถ๋ถ์ ์ฑ์ด ๊ทธ๋ฌ์ง ์์๊น?)
์ด๋ฒ์ Jetpack Compose๋ฅผ ๋ฐฐ์ฐ๋ฉด์ ์ฑ ์ ์ฒด์ Status Bar ์์์ ๋ณ๊ฒฝํด์ผ ํ๋ค.
์ต๊ทผ ์๋๋ก์ด๋์์๋ EdgeToEdge ๋ฐฉ๋ฒ์ ๊ถ์ฅํ๋ ๊ฒ ๊ฐ์ง๋ง,
๋๋ ์์ง ์ด ๋ฐฉ๋ฒ์ ์ต์ํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ๋ชจ์ํ๋ค!
(ํ์ง๋ง ์ฌ๋งํ๋ฉด EdgeToEdge๋ฅผ ์ด์ฉํ๊ธธ ๋ฐ๋!)
1. build.gradle.kts์ Accompanist ์์กด์ฑ ์ถ๊ฐ
implementation ("com.google.accompanist:accompanist-systemuicontroller:0.27.0")
Goggle Accompanist๋ Google์์ JetpackCompose ๊ฐ๋ฐ์ ํ์ํ์ง๋ง,
์์ง์ ์ฌ์ฉํ ์ ์๋(?) ๊ธฐ๋ฅ๋ค์ ์ ๊ณตํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชจ์์ด๋ค.
Accompanist๋ฅผ ๋๋ฌ๋ณด๋ฉด Permissions, Drawable Painter ๋ฑ ๋ค์ํ ๊ธฐ๋ฅ์ด ์ ๊ณต๋๊ณ ์๋ค.
2. ๐ theme → Theme.kt
๋๋ ์ฑ ์ ์ฒด์ Status Bar ์์์ ๋ณ๊ฒฝํ๊ณ ์ถ์๊ธฐ ๋๋ฌธ์ Theme ํ์ผ์์ ์์์ ์ค์ ํด ์ฃผ๊ธฐ๋ก ํ๋ค.
@Composable
fun ComposeRecipeAppTheme(
darkTheme: Boolean = isSystemInDarkTheme(),
dynamicColor: Boolean = true,
content: @Composable () -> Unit
) {
...
val systemUiController = rememberSystemUiController()
if (darkTheme) {
systemUiController.setSystemBarsColor(
color = Color.Transparent // ๋คํฌํ
๋ง์ผ๋ Status Bar ์์
)
} else {
systemUiController.setSystemBarsColor(
color = Color.White // ๋ผ์ดํธํ
๋ง์ผ๋ Status Bar ์์
)
}
...
}
๊ทธ๋ผ ์ด๋ ๊ฒ Recipe App ์ ์ฒด์ Status Bar๊ฐ ํฐ์์ผ๋ก ๊น๋ํ๊ฒ ๋๋ค. - ฬฬ โธี•๐ฅฆ•ีโธ ฬฬ-
(+)
์์ง Compose์ ์ต์ํ์ง ์์ต๋๋ค . . .
์๋ชป๋ ์ ๋ณด๊ฐ ์์ผ๋ฉด, ๋๊ธ๋ก ์๋ ค์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค ! ๐ฅฐ
Reference
https://github.com/google/accompanist
GitHub - google/accompanist: A collection of extension libraries for Jetpack Compose
A collection of extension libraries for Jetpack Compose - google/accompanist
github.com