如何使状态栏颜色与jetpack compose中材料3中的顶部应用栏颜色相同

Sai*_*nik 5 kotlin android-jetpack-compose material3

我想让状态栏与 Material 3 jetpack compose 项目中的顶部应用程序栏颜色相同,并且还想在滚动时实现色调提升。如何实现这一目标?

valscrollBehavior = TopAppBarDefaults.pinnedScrollBehavior()

Scaffold(
    modifier = Modifier.nestedScroll(scrollBehavior.nestedScrollConnection),
    topBar = {
        SmallTopAppBar(
            scrollBehavior = scrollBehavior,
Run Code Online (Sandbox Code Playgroud)

我也希望状态栏也一样。

Cod*_*oet 1

为此,您通常会使用Jetpack Compose 的伴奏系统 UI 控制器。

例如,您可以这样使用它:

setContent {
            MyTheme {
                Surface(
                    modifier = Modifier.fillMaxSize(),
                    color = MaterialTheme.colorScheme.background
                ) {
                    val systemUiController = rememberSystemUiController()
                    val useDarkIcons = !isSystemInDarkTheme()

                    SideEffect {
                        systemUiController.setStatusBarColor(
                            color = Color(0xff655D8A),
                            darkIcons = !useDarkIcons
                        )
                    }
                  }
                }
Run Code Online (Sandbox Code Playgroud)

将此依赖项添加到您的应用程序 build.gradle 中:

implementation "com.google.accompanist:accompanist-systemuicontroller:0.31.1-alpha"
Run Code Online (Sandbox Code Playgroud)