Android Studio 如何在jetpack compose中使文本可点击?我还想在选择一次后将其切换为不可点击

uwopmtnx  于 2022-11-16  发布在  Android
关注(0)|答案(2)|浏览(392)
Text(
            text = "Resend OTP",
            fontSize = 20.sp,
            color =  Textfieldcolor,
            style = TextStyle(textDecoration = TextDecoration.Underline)
        )

//这是我的程式码,这个文字应该可以选取一次,然后停用。

eqqqjvef

eqqqjvef1#

可以添加clickable修饰符或使用ClickableText

var enabled by remember { mutableStateOf(true)}

ClickableText(
    text = AnnotatedString(text) ,
    onClick = {
        if (enabled) {
            enabled = false
            text = "Disabled"
        }
    })
lf3rwulv

lf3rwulv2#

就像@Arpit提到的那样,最好使用TextButton来实现这个目的。但是如果你真的想使用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
    )
}

也就是说,我这个代码是严格的一次性点击文本。我不会推荐使用它的东西,如OTP按钮;因为用户将无法点击它,除非他们重新启动你的应用。你可以拉enabled变量,并从外部管理它(例如,保持禁用一段时间,而不是永久)。

相关问题