Jetpack Compose에서 상태 표시줄 색상 변경

May 08 2023
해결된 모든 문제는 교훈입니다. #AndroidTips #SolvedProblemToday 상태 표시줄 색상을 변경하는 것은 Android 애플리케이션을 디자인할 때 일반적인 작업입니다.

해결된 모든 문제는 교훈입니다. #AndroidTips #오늘의 문제 해결

제트팩 작성

상태 표시줄 색상을 변경하는 것은 Android 애플리케이션을 디자인할 때 일반적인 작업입니다. Jetpack Compose를 사용하면 단 몇 줄의 코드로 수행할 수 있는 간단한 프로세스입니다.

Jetpack Compose에서 상태 표시줄 색상 변경

Jetpack Compose에서 상태 표시줄 색상을 변경하려면 패키지 SystemUiController에서 제공하는 를 사용할 수 있습니다 androidx.compose.ui.platform.

먼저 accompanist-systemuicontroller가 필요합니다 . 앱의 build.gradle 파일에 종속성을 추가하세요.

dependencies {
    implementation "com.google.accompanist:accompanist-systemuicontroller:x.y.z"
}

상태 표시줄 색상을 설정하는 구성 가능한 함수를 생성해야 합니다( SetStatusBarColor.kt 클래스 생성 ). 예를 들면 다음과 같습니다.

@Composable
fun SetStatusBarColor(color: Color) {
    val systemUiController = rememberSystemUiController()
    SideEffect {
        systemUiController.setSystemBarsColor(color)
    }
}

다음으로 다음과 같이 MainActivity 의 기본 @Composable함수 에서 이 함수를 호출할 수 있습니다.

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            YourAppNameTheme {
                StatusBarColor(color = MaterialTheme.colors.primary)
                // Other content here, example :
                Surface(modifier = Modifier.fillMaxSize(), color = MaterialTheme.colors.background) {
                    YourAppClass()
                }
            }
        }
    }
}

그리고 그게 다야! 몇 줄의 코드만으로 Jetpack Compose 기반 Android 애플리케이션에서 상태 표시줄 색상을 쉽게 변경할 수 있습니다.

사용은 SystemUiController상태 표시줄 색상 변경에 국한되지 않고 탐색 표시줄, 몰입형 모드 등과 같은 다른 시스템 UI 구성에도 사용할 수 있습니다.

내 저장소 github.com/im-o 에 jetpack compose를 사용하는 샘플 앱이 있습니다 .

완료 및 먼지, 감사합니다!