2011-06-14 53 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)。無論觸摸在哪裏,當某個字段具有焦點時,首先會將其發送給它,以確定它是否應該處理它。