我正在将我的 iOS 应用程序转换为 Android。我有几个用于过滤数组的枚举。我有类别(女性、男性、混合)、联赛和分区。
在 SwiftUI 中,我使用的是
Picker {}.pickerStyle(SegmentedPickerStyle())
。我正在寻找一种在 Jetpack Compose 中执行相同操作的方法。我搜索的关键字没有找到任何东西。
那么,我如何从 Jetpack Compose 中的 Kotlin 枚举中直观地选择值?
尝试以下 Jetpack Compose“等效”:
@Composable fun MyExposedDropdownMenuBox() {
val context = LocalContext.current
val categories = arrayOf("Women", "Men", "Mixed")
var expanded by remember { mutableStateOf(false) }
var selectedText by remember { mutableStateOf(categories[0]) }
Box(modifier = Modifier.fillMaxWidth().padding(32.dp)) {
ExposedDropdownMenuBox(
expanded = expanded,
onExpandedChange = { expanded = !expanded }
) {
TextField(
value = selectedText,
onValueChange = {},
readOnly = true,
trailingIcon = {
ExposedDropdownMenuDefaults.TrailingIcon(
expanded = expanded
)
},
modifier = Modifier.menuAnchor()
)
ExposedDropdownMenu(
expanded = expanded,
onDismissRequest = { expanded = false }
) {
categories.forEach { item ->
DropdownMenuItem(
text = { Text(text = item) },
onClick = {
selectedText = item
expanded = false
Toast.makeText(context,
item,
Toast.LENGTH_SHORT).show()
}
)
}
}
}
}
}