我从Kotlin开始,我想知道如何在Kotlin中用下拉菜单制作表单。这个是我做的,但不好看。
代码:
var billingPeriodExpanded by remember { mutableStateOf(false) }
var selectedIndex by remember { mutableStateOf(0) }
OutlinedTextField(
value = billingPeriodItems[selectedIndex],
onValueChange = { selectedIndex = billingPeriodItems.indexOf(it) },
label = {
Column(modifier = Modifier.fillMaxSize()) {
ComposeMenu(
menuItems = billingPeriodItems,
menuExpandedState = billingPeriodExpanded,
seletedIndex = selectedIndex,
updateMenuExpandStatus = {
billingPeriodExpanded = true
},
onDismissMenuView = {
billingPeriodExpanded = false
},
onMenuItemclick = { index ->
selectedIndex = index
billingPeriodExpanded = false
}
)
}
},
singleLine = true,
modifier = Modifier.fillMaxWidth(0.8f)
)
它看起来是这样的:
在这里你可以看到下拉菜单是如何在字段上方而不是在内部的
你知道我该怎么修吗?
无需重新发明轮子。Compose中已经有一个组件可以做到这一点:
Stackoverflow-Compose 的公开下拉菜单
请参阅以下位置的最新代码示例:
暴露下拉菜单测试.kt
只需搜索功能:
ExposedDropdownMenuForTest