Jetpack Compose,如何在 Scaffold 中的 .showSnackbar() 中改变 snackbar 动作的颜色?

Jetpack Compose, how to change the color of the action of the snackbar in .showSnackbar() in a Scaffold?

因此,我使用 scaffoldState.snackbarHostState.showSnackbar() 方法在我的脚手架中展示了一个小吃店,尽管“撤消”操作的颜色是深紫色,我想将其更改为其他颜色.

我知道我可以将其显示为自定义组件,但我想在 coroutineScope() 中启动它,我认为这是不可能的。

我的小吃店代码是这样的。

scope.launch {
  val result = scaffoldState.snackbarHostState.showSnackbar(
    message = "Note Deleted",
    actionLabel = "Undo",
  )
  if (result == SnackbarResult.ActionPerformed) { 
    viewModel.onEvent(NotesEvent.RestoreNote)
  }
}

我想知道是否可以在此处更改操作的文本颜色,如果可以,如果您能提供示例或资源,那就太好了。

谢谢!

您可以使用 actionColor 参数自定义 Snackbar

类似于:

val scaffoldState = rememberScaffoldState()
Scaffold(
    scaffoldState = scaffoldState,
    snackbarHost = {
        // reuse default SnackbarHost to have default animation and timing handling
        SnackbarHost(it) { data ->
            // custom snackbar with the custom colors
            Snackbar(
                actionColor = Green,
                //contentColor = ...,
                snackbarData = data
            )
        }
    },

那就用吧:

scope.launch {
        scaffoldState.snackbarHostState.showSnackbar(
               message = "Note Deleted",
               actionLabel = "Undo"
         )
}