She*_*har 30 text kotlin android-studio android-jetpack android-jetpack-compose
这是我的代码:
Text(
text = "Resend OTP",
fontSize = 20.sp,
color = Textfieldcolor,
style = TextStyle(textDecoration = TextDecoration.Underline)
)
Run Code Online (Sandbox Code Playgroud)
我希望文本可以点击一次然后禁用。
我该怎么做呢?
Gab*_*tti 35
您可以将clickable修饰符添加到Text或使用ClickableText而不是Text。
以下是如何使用ClickableText执行此操作的示例:
var enabled by remember { mutableStateOf(true)}
ClickableText(
text = AnnotatedString(text) ,
onClick = {
if (enabled) {
enabled = false
text = "Disabled"
}
})
Run Code Online (Sandbox Code Playgroud)
Shr*_*h.K 10
就像 @Arpit 提到的,最好使用 aTextButton用于此目的。但如果你绝对想使用Text,你可以使用以下代码片段。
@Composable
fun OneTimeClickableText(text : String, onClick : () -> Unit){
var enabled by rememberSaveable{ mutableStateOf(true)}
Text(
modifier = Modifier
.clickable(enabled = enabled) {
enabled = false
onClick()
},
text = text
)
}
Run Code Online (Sandbox Code Playgroud)
也就是说,我这段代码严格适用于一次性可点击文本。我不建议将它用于 OTP 按钮之类的用途;因为用户将无法单击它,除非重新启动您的应用程序。您可以拉出enabled变量并从外部管理它(例如,将其禁用一段时间而不是永久)。
| 归档时间: |
|
| 查看次数: |
34066 次 |
| 最近记录: |