android - 使用 client-maven-plugin / GraalVM 和 BACK 事件的 JavaFX Android 应用程序
问题描述
我设法使用来自 Gluon 的 client-maven-plugin 为 Android 创建了一个 JavaFX 应用程序。到目前为止一切都很好,但我没有设法对 Android 上的原生 BACK 导航做出反应。我尝试将键事件侦听器添加到场景中 - 它适用于桌面并允许对按下的 ESC 键做出反应,但在 Android 上甚至不调用事件处理程序。
我看到,事件本身到达 GraalVM,看起来它被解释为按下并释放 BACK 键:
02-17 20:46:52.937 8275 8275 V GraalActivity: Activity, process get key event, action = 0
02-17 20:46:52.937 8275 8275 I System.out: KeyEvent: KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_BACK, scanCode=0, metaState=0, flags=0x48, repeatCount=0, eventTime=244804749, downTime=244804749, deviceId=-1, source=0x101, displayId=0 } with action = 0
02-17 20:46:52.937 8275 8275 I System.out: [JVDBG] eventkeycode = 4 and jfxkc = ESCAPE with code 27
02-17 20:46:52.937 8275 8275 E GraalGluon: Native Dalvik layer has to dispatch key event, pass to native Graal layer with 1 chars...
02-17 20:46:52.937 8275 8275 E GraalGluon: passed count = 1 and realcount = 1
02-17 20:46:52.937 8275 8275 E GraalGluon: c0 = nd c1 = s
02-17 20:46:52.937 8275 8275 E GraalGluon: c0 = 1b and c1 = 7473
02-17 20:46:53.003 8275 8275 V GraalActivity: Activity, process get key event, action = 1
02-17 20:46:53.003 8275 8275 I System.out: KeyEvent: KeyEvent { action=ACTION_UP, keyCode=KEYCODE_BACK, scanCode=0, metaState=0, flags=0x48, repeatCount=0, eventTime=244804818, downTime=244804749, deviceId=-1, source=0x101, displayId=0 } with action = 1
02-17 20:46:53.003 8275 8275 E GraalGluon: Native Dalvik layer has to dispatch key event, pass to native Graal layer with 1 chars...
02-17 20:46:53.003 8275 8275 E GraalGluon: passed count = 1 and realcount = 1
02-17 20:46:53.003 8275 8275 E GraalGluon: c0 = nd c1 = s
02-17 20:46:53.003 8275 8275 E GraalGluon: c0 = 1b and c1 = 7473
我当前尝试捕获该键盘输入的是
scene.setOnKeyPressed(ev -> {
System.out.println("onKeyPressed: "+ev.getCode() +" bzw. "+ev.getCharacter());
});
但从日志来看,它永远不会被调用。
所以:我需要做什么来处理这个事件?
解决方案
推荐阅读
- javascript - 如何在热敏打印机中打印页面
- c# - VSCode - linter 找不到 Blazor SyncFusion 组件
- ios - Swift SKNode 位置帮助 - 移动时精灵位置始终为 0,0
- html - 第 1 页后无法从 jquery DataTable 表行中获取属性值
- contentful - 在从旧数据库迁移到 Contentful 时添加 sys 日期属性
- javascript - class sendAPICallback extends dAPIMessage { ^ TypeError: Class extends value undefined is not a constructor or null
- javascript - 有没有办法从通过 JavaScript 嵌入的 YouTube 视频中获取章节?
- html - 为什么在这种情况下隐藏的溢出不能像预期的那样工作?
- algorithm - UnionFind 与加权快速联合(又名按等级联合)
- javascript - 拒绝承诺时如何解决 UnhaldedPromiseRejectionWarning