android - Codename One 中的按钮在 Android 实际设备上处于非 Activity 状态,但在模拟器下工作

标签 android codenameone

在我的 Codename One 应用程序中,我有 2 个表单 A 和 B。一个表单包括一个每 10 秒更新一次的 MapContainer 和一个 float 按钮。如果用户单击 float 按钮,他们可以拍照,然后会显示一个对话框,如果他们选择“确定”,则会显示 B 表单:

new B_Form(theme).show(); // (where theme is the Resources used in A Form). 

此 B 表单包含用于执行某些操作的按钮(即录制音频、播放录制的音频、转到表单 A)。这些按钮在模拟器中工作(虽然不支持录制,因此会显示错误,但这是预期的),即用户可以单击它。

但是在实际设备(Android KitKat)上显示了 B 表单,但尽管所有按钮都已启用,但无法执行任何操作。按钮在按下时甚至不显示其“按下样式”,而是保持“未选中状态”。

唯一可用的按钮是工具栏中的 setBackCommand(即屏幕左上角的向左箭头)。

所以看起来 B 表格没有被考虑在内。此外,如果我在 B 表单上滑动手指,则会显示 A 表单并移动 map 。如果我从 A 表单中删除了 MapContainer,那么 B 表单会在设备上按预期工作。

编辑

令人惊讶的是,如果我通过汉堡菜单从侧面菜单栏调用 Form C,该 Form C 上的按钮可以无缝工作!

所以我觉得 MapContainer 给我带来了麻烦,我该怎么做才能使 B 表单按预期工作?

感谢任何帮助,

问候,

最佳答案

MapContainer 是一个 peer component ,我们在 Android 上启用了新的对等节点,它隐藏了对等系统的一些复杂性,但可能会引发其他问题。

这可能是对等组件系统的不当行为,尽管我很难理解如何重现它。侧边菜单可以工作,因为侧边菜单是一种完全不同的形式,其中没有 map 容器。

关于android - Codename One 中的按钮在 Android 实际设备上处于非 Activity 状态,但在模拟器下工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41695584/

相关文章:

java - 代号一圆角 URLImage 不显示

android - 在 Android 应用程序中使用谷歌图标

android - 父 View 与 subview 重叠

java - Codename One 和 Java 在文件中保存/更新属性值

java.lang.RuntimeException : Waited too long for browser bridge with googlemaps

java - codenameone 显示整个 json 响应消息而不仅仅是单个节点

Android,从服务开始 Activity ?

java - HTTPURLConnection Getoutputstream 挂起

android - findViewById 在膨胀后在自定义 View 中返回 null

codenameone - 以 Galaxy S 为基础