如何将小吃栏按钮响应放入 Kotlin jetpack 的一个暂停函数中

问题描述 投票:0回答:1

如何将小吃栏按钮响应放入 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 放入我的挂起函数中?

android-jetpack-compose android-snackbar suspend
1个回答
0
投票

正如评论中所指出的,请查看

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

© www.soinside.com 2019 - 2024. All rights reserved.