gpt4 book ai didi

android - 撰写中的自动完成 TextView

转载 作者:行者123 更新时间:2023-12-04 17:20:09 26 4
gpt4 key购买 nike

我想在 compose 中创建一个自动完整的 TextView ,并创建了一个包含 TextField 的可组合项。和 DropDown菜单。我在这个解决方案中看到的问题是,当下拉菜单展开时,文本字段不再可操作,我无法在其中输入任何文本。关于如何解决这个问题的任何建议?代码如下

@Composable
fun AutoCompleteText(
value: String,
onValueChange: (String) -> Unit,
onOptionSelected: (String) -> Unit,
modifier: Modifier = Modifier,
label: @Composable (() -> Unit)? = null,
suggestions: List<String> = emptyList()
) {
Column(modifier = modifier) {
OutlinedTextField(
value = value,
onValueChange = { text -> if (text !== value) onValueChange(text) },
modifier = Modifier.fillMaxWidth(),
label = label,
)
DropdownMenu(
expanded = suggestions.isNotEmpty(),
onDismissRequest = { },
modifier = Modifier.fillMaxWidth()
) {
suggestions.forEach { label ->
DropdownMenuItem(onClick = {
onOptionSelected(label)
}) {
Text(text = label)
}
}
}
}
}

最佳答案

DropdownMenu有一个名为 PopupProperties 的属性您可以使用它来禁用可聚焦性。这应该允许您继续输入 OutlinedTextField :

OutlinedTextField(
value = value,
onValueChange = { text -> if (text !== value) onValueChange(text) },
modifier = Modifier.fillMaxWidth(),
label = label,
)
DropdownMenu(
expanded = suggestions.isNotEmpty(),
onDismissRequest = { },
modifier = Modifier.fillMaxWidth(),
// This line here will accomplish what you want
properties = PopupProperties(focusable = false)
) {
suggestions.forEach { label ->
DropdownMenuItem(onClick = {
onOptionSelected(label)
}) {
Text(text = label)
}
}
}

关于android - 撰写中的自动完成 TextView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66675748/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com