kotlin - 如何在 Jetpack Compose for Desktop 上最好地显示弹出菜单?
问题描述
所以我有了弹出菜单的概念......
@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?
}
)
)
}
}
解决方案
推荐阅读
- python - 将具有已知位置的天真日期时间转换为 UTC 日期时间
- r - 错误 R 版本安装了不同的内部结构,已多次安装 ggplot
- python - atom 的命令行与 Mac 中的终端不同
- r - 在 r 中计算 A/B 测试数据集的贝叶斯因子
- kotlin - 必需的和多个成语之一
- c# - AppData 文件夹中的 Sqlite 连接字符串。实体框架核心
- java - 如何导入应用程序上下文?
- javascript - jQuery - 在页面加载时向下滚动页面 100 像素
- node.js - Firebase Cloud Functions 在尝试发送消息时返回错误
- php - 如何根据类别名称从 wordpress 数据库中选择所有帖子?