Oma*_*ani 4 android kotlin android-jetpack-compose
我想ExposedDropdownMenuBox基于布尔变量禁用
我的代码看起来像这样:
@Composable
private fun Title(
title: String,
onTitleChange: (String) -> Unit,
isTitleEnabled: Boolean
) {
val options = stringArrayResource(id = R.array.name_titles)
var expanded by remember { mutableStateOf(false) }
var selectedOptionText by remember { mutableStateOf(title) }
ExposedDropdownMenuBox(
expanded = expanded,
onExpandedChange = {
expanded = !expanded
}
) {
TextField(
enabled = isTitleEnabled,
modifier = Modifier
.fillMaxWidth()
.greyBordered(),
readOnly = true,
value = selectedOptionText,
onValueChange = { },
label = { Text(stringResource(id = R.string.input_hint_title)) },
trailingIcon = { TrailingIcon(expanded = expanded) },
colors = ExposedDropdownMenuDefaults.outlinedTextFieldColors(
textColor = navyBlue,
focusedLabelColor = nightGray,
backgroundColor = white,
cursorColor = navyBlue,
trailingIconColor = nightGray,
focusedTrailingIconColor = nightGray,
focusedBorderColor = Color.Transparent,
unfocusedBorderColor = Color.Transparent,
disabledBorderColor = Color.Transparent,
)
)
ExposedDropdownMenu(
expanded = expanded,
onDismissRequest = { expanded = false },
) {
options.forEach { selectionOption ->
DropdownMenuItem(
onClick = {
selectedOptionText = selectionOption
onTitleChange(selectionOption)
expanded = false
}
) {
Text(text = selectionOption)
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
所以我有一个包含 ExposeDropdownMenuBox 的 compose 函数,其中包含 textField 和 ExposedDropdownMenu,我想要实现的是能够在isTitleEnabled变量为 true 时启用 ExposedDropdownMenuBox,而在变量为 false 时无法展开 ExposedDropdownMenuBox isTitleEnabled。
您可以在 内使用条件onExpandedChange来避免扩展
ExposedDropdownMenuBox. 当用户单击 时会调用此回调ExposedDropdownMenuBox。在这种情况下,您也可以删除trailingIcon。
就像是:
var isTitleEnabled by remember { mutableStateOf(false) }
ExposedDropdownMenuBox(
expanded = expanded,
onExpandedChange = {
if(isTitleEnabled) {
expanded = !expanded
}
}
) {
TextField(
enabled = isTitleEnabled,
readOnly = true,
trailingIcon = {
if (isTitleEnabled){
ExposedDropdownMenuDefaults.TrailingIcon(
expanded = expanded,
)
}
},
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1400 次 |
| 最近记录: |