所以,我使用 scaffoldState.snackbarHostState.showSnackbar()
方法在我的 Scaffold 中显示一个 snackbar ,尽管“撤消”操作的颜色是深紫色,我会喜欢把它改成别的东西。
我知道我可以将它显示为自定义组件,但我想在 coroutineScope()
中启动它,我认为这是不可能的。
我的 snackbar 代码是这样的。
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"
)
}
关于android - Jetpack Compose,如何在 Scaffold 中的 .showSnackbar() 中更改 snackbar Action 的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69734835/