2011-06-14 70 views
0

我遇到了一个小黑莓应用程序的问题,其中触摸事件正在被2个具有焦点的特定字段中的1个处理。在我的情况下,我有两个图像,一个在顶部(屏幕上的第一个元素)和底部(最后一个元素添加到屏幕上,都是BitmapField的子类,它们的目的是显示一个网页(点击触控板/球)黑莓事件处理和焦点问题

问题是这些问题之一是否有焦点,无论用户在屏幕上点击哪里(即在EditField中,另一个自定义按钮或仅仅是一部分背景),具有焦点的BitmapField消耗事件调用Web浏览器,这显然只是BB火炬模拟器的一个问题,而我为BB OS 5.0构建的问题

我有BitmapField同时使用导航n点击和触摸事件。

此外,从哪里获得良好(如在RIM中未写)黑莓API事件处理指南的任何方向都将有所帮助。

UPDATE: 我曾尝试:

public boolean isFocusable() { 
     return false; 
    } 

但是,理想情况下,我想这在设备上,如曲线和大胆工作。

更新2: 有一对夫妇的布局管理器里面LabelFields可以获得焦点,但它们不会导致这个问题的,它只有在BitmapFields具有焦点发生。

回答

3

我建议通过从Field继承创建一个自定义图像按钮字段。覆盖paint(Graphics graphics)以绘制图像并聚焦边框(或背景)。然后,只需覆盖navigationClick(int status, int time)。当用户点击触摸屏上的字段时,BB UI框架将调用该方法。它也适用于非触摸屏设备。作为一个很大的好处 - 你根本不需要打扰TouchEvent

+0

工作很好。谢谢。 – 2011-06-16 19:28:30

1

确保在touchEvent()上检查触摸的位置。如果它超出BitmapField的范围,则应返回super.touchEvent(message)。无论触摸在哪里,当某个字段具有焦点时,首先会将其发送给它,以确定它是否应该处理它。