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"
)
}
因此,我使用 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"
)
}