2011-08-31 65 views
0

我需要可调焦的水平现场管理器,为此我在论坛中找到了一些代码。如何在黑莓中创建可调焦的水平现场管理器

 hfm[i]=new HorizontalFieldManager(HorizontalFieldManager.FOCUSABLE) 
     { 
      protected void onFocus(int direction) 
      { 
       Background bg = BackgroundFactory.createLinearGradientBackground(0x00E2E2E2,0x00E2E2E2,0x00E2E2E2,0x00E2E2E2); 
       setBackground(bg); 
      } 

      protected void onUnfocus() 
      { 
       Background bg = BackgroundFactory.createLinearGradientBackground(0x00FFFFFF,0x00FFFFFF,0x00FFFFFF,0x00FFFFFF); 
       setBackground(bg); 
      } 
     }; 
rtf[i]=new ExtendedLabel(list[i]); 
hfm[i].add(rtf[i]); 
add(hfm[i]); 

但它不可作为焦点,如果

+0

退房ListStyleButtonField的情况下,这是你在试图重新创造什么:http://supportforums.blackberry.com/t5/Java-Development/ Implement-advanced-buttons-fields-and-managers/ta -p/488276 –

+0

感谢您的支持,这是链接对学习其他概念也非常有帮助 – Ajay

回答

3

你也应该将这个方法添加到您的新Horizo​​ntalFieldManager

public boolean isFocusable(){ 
    return true; 
} 

但请记住,当你设置一个经理是这样可以获得焦点它必须有一个可聚焦的区域,否则当屏幕试图让你的Managae成为焦点时,你会得到一个空的异常。

0

这是一个已知问题,至少每个人都会遇到。 我开始在BB支持论坛主题:
Scroll happening but Vertical Field Manager Not Moving

而且给出的答案是黑莓支持论坛的文章:
My scrollable manager is not scrolling

这不是一个真正的答案,但是这是可用于唯一的解决方法此刻

另一种更多钞票的解决方案是:

一个朋友给我的这么lution ......你可以把你的经理到 水平经理,那么你可以只添加一个nullfield与 可获得焦点的行为,这将这样的伎俩

你可以试试。

+0

通过使用上面的链接标签字段具有不同的高度是可以聚焦的。但我需要水平现场经理得到重点 – Ajay

+0

你尝试添加nullfield吗? 到hfm添加到哪里? –

0

您将重点放在此。

rtf[i]=new ExtendedLabel(list[i]); 

如....

rtf[i]=new ExtendedLabel(list[i],Field.Focusable);