我想显示1分钟的计时器,当用户点击重新发送

enter image description here

enter image description here

Text(
   text = "Re-send",
   modifier = Modifier.clickable { },
   color = Color.Blue
)

推荐答案

要创建具有2种 colored颜色 的文本,您需要批注字符串,要使重新发送可点击,您需要重新发送和点击文本的索引

要创建计时器,可以使用LaunchedEffect,如下所示

@Composable
private fun ResendTextSample() {

    val str = "Did you not receive the email? "
    val length = str.length

    var isTimerActive by remember {
        mutableStateOf(false)
    }

    var time by remember { mutableStateOf("") }

    LaunchedEffect(key1 = isTimerActive) {
       if(isTimerActive){
           var second = 0
           while (second < 15) {
               time = if(second <10) "0:0$second" else "0:$second"
               delay(1000)
               second++
           }
           isTimerActive = false
       }
    }

    val annotatedLinkString = buildAnnotatedString {

        append(str)
        withStyle(
            SpanStyle(
                color = Color.Blue,
            )
        ) {
            if (!isTimerActive) {
                append("Re-send")
            } else {
                append(time)
            }
        }
        append("\nCheck your spam filter")

    }

    ClickableText(
        text = annotatedLinkString,
        style = TextStyle(fontSize = 20.sp),
        onClick = {
            if (!isTimerActive && it >= length && it <= length + 7) {
                isTimerActive = true
            }
        }
    )
}

结果.在演示中,我将最大时间设置为15秒,以显示重新发送已启用.

enter image description here

Android相关问答推荐

致命异常:java.lang. SecureExcellent::用户10021和当前进程都没有android. permissions.Change_WIFI_STATE

在画布上画直线

如何使用喷气背包压缩让Animated Image Vector每次动画化一条路径?

Android添加设置图标齿轮到应用程序信息

Android编写动画在发布版本中崩溃

如何让用户与我的应用生成的多个音频文件交互

无法在Android Gradle中同步Chaquopy版本

我如何剪裁一个可由另一个合成的

从单元测试访问RES/RAW文件

默认调度程序是否在协程中使用共享线程池?

Lateinit变量结果始终以kotlin格式未初始化

警告:应用必须面向 Android 13(API 级别 33)或更高版本.确实如此

当 Firebase Firestore 发生变化时,Kotlin ViewModel 不会更新

Android Studio:按下前缀键:切换 Logcat 格式

未找到 com.android.tools.build:gradle:7.4.0 的匹配变体

在 Jetpack Compose 中包装内容

Android Studio xml 预览问题无法初始化编辑器

如何使用 Kotlin Coroutines 正确地拥有待处理的操作队列?

如何使在库范围之外无法访问的接口的具体实现.?

单个用户可以在 Firebase 身份验证中将多个电话号码链接到他的帐户吗?