如何在Blackberry中创建可聚焦的水平字段管理器

时间:2011-08-31 10:43:58

标签: blackberry

我需要可聚焦的水平字段管理器,为此我在论坛中找到了一些代码。

        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]);

但如果它不可专注,

3 个答案:

答案 0 :(得分:3)

您还应该将此方法添加到新的Horizo​​ntalFieldManager

public boolean isFocusable(){
    return true;
}

请记住,当您将管理器设置为以这种方式可聚焦时,它必须在其中具有可聚焦的字段,否则当屏幕试图给您的管理焦点时,您将获得null异常。

答案 1 :(得分:0)

这是一个已知问题,至少每次都会发生在所有人身上。 我在BB支持论坛上开始了一个话题:
Scroll happening but Vertical Field Manager Not Moving

答案是黑莓支持论坛文章:
My scrollable manager is not scrolling

这不是一个真正的答案,但是目前唯一可用的解决方法

另一个可行的解决方案是:

  

一位朋友给了我解决方案......你可以把你的经理变成一个   水平管理器然后你可以添加一个带有的空字段   可聚焦的行为,这将做到这一点

你可以试试。

答案 2 :(得分:0)

你关注这一点。

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

as ....

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