【发布时间】:2022-01-06 00:48:27
【问题描述】:
我的代码
我尝试将长度限制为最多 30 个字符, 但如果我写了超过 30 个字符, 它将不再被输入或删除。这是为什么呢?
我想做的是创建一个类似于 xml 中的 EditText 的视图。
你想要的功能。
- 提示
- 最大长度
但是,Jetpack Compose TextField() 不支持以上两个函数。
@Composable
fun MyCustomEditText(
placeholder: String = stringResource(id = "sample"),
) {
var inputText by remember { mutableStateOf("") }
BasicTextField(
value = inputText,
onValueChange = {if (it.length <= 30) inputText = it },
singleLine = false,
maxLines = 2,
decorationBox = { innerTextField ->
if (inputText.isEmpty()) { Text(text = placeholder)}
innerTextField()
}
)
}
【问题讨论】:
-
我运行了您的代码,如果我尝试输入超过 30 个字符,则会被阻止。当达到 30 个字符时,我也可以删除字符。那么究竟是什么问题呢?
标签: android android-studio android-layout android-jetpack-compose android-jetpack