我有下面的Dialog
,用户将输入电子邮件地址。如果电子邮件无效,它将在下面显示错误消息。但由于某种原因,当我显示错误消息时,它似乎切断了按钮。
我在对话框中有显示或隐藏错误消息的代码。
if(!isEmailVerifiedSuccess) {
Text(
modifier = Modifier.fillMaxWidth(),
textAlign = TextAlign.Center,
text = stringResource(R.string.email_verify_failed),
fontWeight = FontWeight.Normal,
fontSize = 16.sp,
color = MaterialTheme.colorScheme.error
)
}
看起来对话框没有腾出空间并按下按钮。但是,在预览中看起来很好。
fun AddVisitorDialog(
email: String,
isEmailVerifiedSuccess: Boolean,
onEmailChanged: (email: String) -> Unit,
onDialogClose: () -> Unit,
isValidInput: Boolean,
onAddButtonClicked: (email: String) -> Unit,
modifier: Modifier = Modifier) {
Dialog(onDismissRequest = { onDialogClose() }) {
Column(
modifier = modifier,
horizontalAlignment = Alignment.CenterHorizontally
) {
IconButton(
modifier = Modifier.align(Alignment.End),
onClick = {
onDialogClose()
}) {
Icon(
painter = painterResource(id = R.drawable.close),
contentDescription = "close button"
)
}
Text(
modifier = Modifier.fillMaxWidth(),
textAlign = TextAlign.Center,
text = stringResource(R.string.add_visitor),
fontWeight = FontWeight.Bold,
fontSize = 20.sp,
color = MaterialTheme.colorScheme.agendaSubTitleHeaderColor
)
Spacer(modifier = Modifier.height(30.dp))
UserInputTextField(
modifier = Modifier.fillMaxWidth(),
isInputValid = isValidInput,
inputValue = email,
placeholderText = stringResource(id = R.string.email_address),
onInputChange = { newEmail ->
onEmailChanged(newEmail)
}
)
if(!isEmailVerifiedSuccess) {
Text(
modifier = Modifier.fillMaxWidth(),
textAlign = TextAlign.Center,
text = stringResource(R.string.email_verify_failed),
fontWeight = FontWeight.Normal,
fontSize = 16.sp,
color = MaterialTheme.colorScheme.error
)
}
Spacer(modifier = Modifier.height(30.dp))
TaskButton(
modifier = Modifier.fillMaxWidth(),
buttonText = stringResource(R.string.add),
onButtonClick = {
onAddButtonClicked(email)
}
)
}
}
}
1条答案
按热度按时间zrfyljdw1#
此时,您可以将在对话框中隐藏/显示错误消息的代码更改为
Text
composable的值基于isEmailVerifiedSucess
而改变。因为没有更多的高度问题。