Java me Lwiit滚动点击问题

Java me Lwiit滚动点击问题,java-me,lwuit,Java Me,Lwuit,这对LWIIT来说是一个非常普遍的问题 我正在为诺基亚S40手机开发 我有一个作为菜单的列表。表单有一个ActionListener,它监听软键事件,还有列表点击事件 它是通过以下方式实现的: if (evt.getCommand() != null) { if (evt.getCommand().getCommandName().equals("Back")) { if (Display.getInstance().getCurrent().get

这对LWIIT来说是一个非常普遍的问题

我正在为诺基亚S40手机开发

我有一个作为菜单的列表。
表单
有一个
ActionListener
,它监听
软键事件
,还有
列表
点击事件

它是通过以下方式实现的:

if (evt.getCommand() != null) {
        if (evt.getCommand().getCommandName().equals("Back")) {
            if    (Display.getInstance().getCurrent().getUIID().equals("SubMenu")) {
以及:

问题是: 菜单似乎对滚动非常敏感,但对点击不够敏感

意思是:如果您尝试单击列表中的菜单项,列表通常会滚动,而不是实际捕获链接


有没有办法影响这种行为

更新答案:仅供参考,我们有S40触摸式手机,据我回忆,我们的QA没有报告这些问题。请记住,这是一个电阻屏幕,所以它不能处理手指,它与指甲一起工作最好,否则你会得到不好的结果。用手指你会看到拖拽事件到处都是,这就是为什么你可能正在经历我下面解释的事情

您可能会看到这一点,因为LWUIT从手机接收到PointerDraged事件,因此决定正在进行拖动操作。LWUIT实现中有指针拖动事件阻塞的一般经验值(以防止过于急切的平台发送太多拖动事件)。如果平台发送“不适当”的拖动事件,LWUIT将直接删除它们,以避免混淆应用程序


setDragStartPercentage()允许您调整手指为触发拖动而需要移动的屏幕百分比。默认情况下,如果系统发送7个拖动事件,则无论我们如何激活拖动,该选项仅可配置给LWIIT实现作者。

我指的是触摸S40s-C3-01类设备,因为没有触摸就不会发生此问题。(几种不同的型号)。如果您尝试启动列表,并且在执行此操作时仅轻轻移动手指,则列表不会启动。对于非触摸式设备或诺基亚仿真器,这不会发生,因为用鼠标点击不会被误认为是滚动事件。我已经“稍微”深入了解了这一点:如果你在很短的时间内不按下按钮,一切都没问题。如果你再按一下,什么也不会发生。这也是诺基亚手机LCDUI中的点击事件。我已录制了一个小样本视频,并将其发送给lwuit@sun,我希望您可以访问此帐户;)谢谢你的回答。为了缩小问题的范围,我现在尝试了几种方法。我指的是svn的版本1520。注释掉第1368行addInputEvent(createPointerEvent(x,y,指针_));完全修复了问题,因此问题确实是由超敏感拖动引起的。当然,这也会禁用滚动。将setDragStartPercentage()更改为某个疯狂的99会稍微改善这种情况,但它并不完美,滚动也不能很好地工作。当然这在emulator中是非常糟糕的,但我不在乎。然后我将GetDraguToActivationThreshold()提高到了200,这是我迄今为止取得的最好的结果。滚动是可以的,点击比原来的7要好得多。尽管如此,它并不是每次都能正常工作,但现在使用这个疯狂的值,它的工作频率更高了。Display.setDragStartPercentage()10和getDragAutoActivationThreshold()200似乎还可以——但滚动有点“慢”,所以不是100%最优。
if (Display.getInstance().getCurrent().getUIID().equals("Menu") ) {