如何将小吃栏按钮响应放入 Kotlin jetpack 的一个暂停函数中。 我的所有小吃店都有一个 SnackbarResult.ActionPerformed 。 我已经暂停了我的小吃店的乐趣:
suspend fun snackBar(
snackbarHostState: SnackbarHostState, context: Context,
buttonText: Int = settings,
snackbarText: Int = permission_access
) =
snackbarHostState.showSnackbar(
context.resources.getString(snackbarText),
context.resources.getString(buttonText),
duration = SnackbarDuration.Short
)
现在我需要像这样调用这个函数:
val contextSnackBar = LocalContext.current as ComponentActivity
snackBarScope.launch {
when (snackBar(context = context, snackbarHostState = snackbarHostState)) {
SnackbarResult.ActionPerformed -> {
contextSnackBar.appSettings().apply {
contextSnackBar.startActivity(this)
}
}
}
但是如何将 SnackbarResult.ActionPerformed 放入我的挂起函数中?
showSnackbar
文档:
suspend fun showSnackbar(
message: String,
actionLabel: String? = null,
withDismissAction: Boolean = false,
duration: SnackbarDuration = if (actionLabel == null) SnackbarDuration.Short else SnackbarDuration.Indefinite
): SnackbarResult
它返回一个 SnackbarResult
SnackbarResult.ActionPerformed(如果已单击选项操作)或 SnackbarResult.Dismissed(如果小吃栏已因超时或由用户关闭)
因此这将自动设置 SnackbarResult,您不必手动设置它。每当用户单击您通过
actionLabel
定义的操作时,该函数将自动返回 SnackbarResult.ActionPerformed
。