2011-06-16 42 views
0

我正在嘗試在iPhone上創建一個等同於UISegmentedControl的控件,這將是三個按鈕,就像單選按鈕一樣。這個想法是當一個被選中時被禁用,並且具有不同的視覺風格。Blackberry Field.VISUAL_STATE_NORMAL

這些按鈕直接從字段中分類以獲得所需的視覺樣式,並將它們分組到一個自定義GridFieldManager中。

問題是點擊時,按鈕的行爲如預期,但一旦移動焦點,按鈕恢復到Field.Visual_STATE_NORMAL(由控制檯輸出證明)。對包含GridFieldManager的唯一定製是一個耦合循環,用於確定使用該管理器的其他區域的焦點。

按鈕被初始化爲如下:

private void init() { 
    this.setBackground(Field.VISUAL_STATE_NORMAL, BackgroundFactory.createLinearGradientBackground(0xfc9b68, 0Xfc9b68, 0xff5800, 0xff5800)); 
    this.setBackground(Field.VISUAL_STATE_DISABLED, BackgroundFactory.createLinearGradientBackground(0xe78568, 0xff5800, 0xd53000, 0xd53000)); 
    this.setBackground(Field.VISUAL_STATE_FOCUS, BackgroundFactory.createLinearGradientBackground(0xd8d8d8, 0xd8d8d8, 0x0000000, 0x000000)); 
} 

的問題是,在某種程度上,對於每個按鈕的可視狀態處於復位狀態。簡而言之,客戶需要一款外觀和行爲完全像iPhone或Android應用程序的黑莓應用程序。任何想法如何發生這將不勝感激。

+0

固定。使用一個標誌設置一個選定的狀態,然後在每次調用調用時重新設置視覺。 – 2011-06-18 21:21:32

+0

請爲您的問題添加一個答案並接受它 – 2011-06-20 12:45:00

回答

0

我發現這個問題的解決方法是添加一個標誌來跟蹤字段是否被選擇或選擇,在MainScreen中設置和取消設置。基於該標誌,在每次重繪期間視覺狀態都會根據需要進行更新。