与本机主题一起使用时,表单中的第一个 addCommand() 项失败

First addCommand() item in a Form fails when used with native theme

我在将 Form class 的 addCommand() 方法与 Native 主题一起使用时遇到了问题 - 其他主题工作正常。请参阅以下示例:

Form hi = new Form("Hi World");
hi.addComponent(new Label("Hi World"));

// with native theme - can't click on the first command in the list
hi.addCommand(new Command("Dummy1") {
    public void actionPerformed(ActionEvent ev) {
        Dialog.show("Dummy1 Clicked!", "You clicked the Dummy1", "OK", null);
    }
});
hi.addCommand(new Command("Dummy2") {
    public void actionPerformed(ActionEvent ev) {
        Dialog.show("Dummy2 Clicked!", "You clicked the Dummy2", "OK", null);
    }
});
hi.show();

当我使用上面的代码创建应用程序时,单击第二个命令 ("Dummy2") 会生成预期的对话框,但单击第一个命令 ("Dummy1") 不会执行任何操作。

只有在使用 Native 主题时才会出现这种情况。如果我切换到 Flat Blue,则单击任一命令都会生成预期的对话框。

此行为在模拟器和真实 Android 设备上都会发生(不知道 iOS)。

仅供参考,我的工具链是 NetBeans IDE v8.2,Java 1.8.0_25,带有 CodenameOne 插件 v3.6.0.

还有其他人看过吗?我错过了什么吗?如果是这样,是否有解决方法?

如果元素非常窄且非常靠近顶部,则点击可能会被误解为点击越界或点击状态栏区域。您需要将 SideCommand 的样式设置为具有合理的默认值,因为此元素是非常特定于应用程序的。否则触摸可能会丢失。

我尝试设置 SideCommand 的样式,但它似乎没有帮助。对我有用的是为 TitleArea 定义样式,然后简单地取消选中 DerivedPadding 设置(我将它们全部设置为 0px)。

我不知道为什么会这样 - 我原以为在任何情况下导出的值都会为零。