gpt4 book ai didi

java - 如何使用 JavaFXPorts 在 Android 中启用 JavaFX 虚拟键盘

转载 作者:行者123 更新时间:2023-11-29 23:31:03 25 4
gpt4 key购买 nike

我在桌面应用程序上启用了 JavaFX 虚拟键盘(通过传递虚拟机参数)。但是当使用 JavaFXPorts 移植到 android 应用程序时,JavaFX 虚拟键盘在 android 中不可见,这显示了 android 的 native 键盘。我尝试通过注释行传递 jvm 参数(同时运行 gdradlew android),但它不起作用。我还尝试调用 FXVK.init(textField); FXVK.attach(textField); 方法,同时聚焦文本字段。但是这些都没有显示 JavaFX 虚拟键盘,它只显示 android 原生键盘。

最佳答案

在 Android 上使用 JavaFXPorts,如果您尝试打印:

Platform.isSupported(ConditionalFeature.VIRTUAL_KEYBOARD)

结果将为 false

其原因如下:

  • Platform 调用 Toolkit.getToolkit().isSupported(),它转到 QuantumToolkit,最终为 calling Application.GetApplication().hasVirtualKeyboard().

  • Android的应用程序是MonocleApplicationhasVirtualKeyboard返回false:

    @Override
    public boolean hasVirtualKeyboard() {
    return deviceFlags[DEVICE_PC_KEYBOARD] == 0 &&
    deviceFlags[DEVICE_TOUCH] > 0;
    }

虽然支持触摸并且第二个条件为真,但第一个条件失败,因为 device.isFullKeyboard() returns 为真。 deviceInputDevice的一个实例,在Android上是通过AndroidInputDevice实现的。

我们最终到达 AndroidInputDevice::isFullKeyboard,它返回 true 并使上述条件为 false。

我们可以看到一个 comment 解释了如何改变它:

@Override
public boolean isFullKeyboard() {
// if we return false, the JavaFX virtual keyboard will be used
// instead of the android built-in one
return true;
}

如果您修改该行并构建 JavaFXPorts,您将获得对 JavaFX 键盘的支持。但考虑到该键盘的局限性,我不确定您为什么要在原生键盘上使用它。

关于java - 如何使用 JavaFXPorts 在 Android 中启用 JavaFX 虚拟键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52659486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com