所以我有一个弹出菜单的概念。。。
@Composable
expect fun PopupMenu(
menuItems: List<String>,
onClickCallbacks: List<() -> Unit>,
showMenu: Boolean,
onDismiss: () -> Unit,
toggle: @Composable () -> Unit,
)
我有一个桌面弹出菜单。。。
@Composable
actual fun PopupMenu(
menuItems: List<String>,
onClickCallbacks: List<() -> Unit>,
showMenu: Boolean,
onDismiss: () -> Unit,
toggle: @Composable () -> Unit,
) {
DropdownMenu(
expanded = showMenu,
onDismissRequest = { onDismiss() },
) {
menuItems.forEachIndexed { index, item ->
DropdownMenuItem(onClick = {
onDismiss()
onClickCallbacks[index]
}) {
Text(text = item)
}
}
}
}
我想弄明白的是,我该如何在这里展示这个呢?
@Composable
fun OneCard(content: MutableState<TextFieldValue>, onValueChange: (TextFieldValue) -> Unit ) {
Card(modifier = Modifier.draggable(DraggableState { }, Orientation.Vertical)
.then(Modifier.padding(16.dp))) {
OutlinedTextField(
value = content.value,
onValueChange = onValueChange,
placeholder = { TextFieldValue(text = "Your thoughts?") },
modifier = Modifier.selectable(
selected = false,
onClick = {
// TODO: How to show popup menu on right click, or perhaps after a delay,
// somewhere near the selected text?
}
)
)
}
}