与本机主题一起使用时,表单中的第一个 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
定义样式,然后简单地取消选中 Derived
的 Padding
设置(我将它们全部设置为 0px)。
我不知道为什么会这样 - 我原以为在任何情况下导出的值都会为零。
我在将 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
定义样式,然后简单地取消选中 Derived
的 Padding
设置(我将它们全部设置为 0px)。
我不知道为什么会这样 - 我原以为在任何情况下导出的值都会为零。