我需要在OutlinedTextField
中显示错误消息,但我没有找到任何关于如何做到这一点的文档。我在教程中找到了几种方法,例如使用提示创建自定义输入字段或在输入字段下方创建Text
,但它们非常旧,也许有更好的方法。
代码:
@Composable
fun EmailInputField(value: MutableState<String>, state: AuthState) {
OutlinedTextField(
value = value.value,
onValueChange = { value.value = it },
modifier = Modifier.fillMaxWidth(1f).height(60.dp),
textStyle = TextStyle(color = Color.White),
label = { Text(text = "Email", color = Color.White) },
colors = TextFieldDefaults.outlinedTextFieldColors(
focusedBorderColor = blue,
unfocusedBorderColor = Color.White
),
isError = state is AuthState.ValidationError,
singleLine = true
)
}
4条答案
按热度按时间h7wcgrx31#
TextField
组件不支持errorMessage
字段。您可以使用以下方法轻松实现:
5n0oy7gb2#
这是一个可以复制粘贴到代码中的现成组合。它有一个名为
error
的String
字段,当它不为空时将显示错误(这样你只有一个状态变量需要跟踪)。它有点冗长,所以你可以像定制任何OutlinedTextField
一样定制它。样品用量
要复制的代码:
ubbxdtey3#
更新
在Jetpack合成材质3版本
1.0.0
(2022年10月24日发布)中,我们可以在OutlinedTextField中使用supportingText
属性supportingText
取一个可组合的。编写Material 3发布说明
i2byvkas4#
更新了@Gabriele Mariotti解决方案的答案,该解决方案可与最新的Compose和Material 3配合使用: