0

我在水平字段管理器中使用了四个按钮,每个按钮的宽度都是屏幕宽度的 1/4,但屏幕上仍然只显示 3 个按钮?我正在为 Eclipse 使用黑莓 9900 模拟器和黑莓插件。

    HorizontalFieldManager hm_btn_family = new HorizontalFieldManager();
    hm_btn_family.setMargin(10, 0, 0, 16);
    add(hm_btn_family);

    family = new Custom_buttonfield("Family", (Display.getWidth()/4), 40);
    family.setFont(font);
    hm_btn_family.add(family);

    friend = new Custom_buttonfield("Friends", (Display.getWidth()/4), 40);
    friend.setFont(font);
    hm_btn_family.add(friend);


    others = new Custom_buttonfield("Others", (Display.getWidth()/4), 40);
    others.setFont(font);
    hm_btn_family.add(others);

    calllist = new Custom_buttonfield("Call List", (Display.getWidth()/4), 40);
    calllist.setFont(font);
    hm_btn_family.add(calllist);`
4

1 回答 1

1

使用 Display.getWidth()/4 假定您要添加它的 Manager 具有屏幕的整个宽度。实际上可用的宽度将取决于它被添加到的 Manager 分配的内容(受其 Manager 的限制,依此类推,直到您返回屏幕)。

它还受到 Manager 的属性的限制,特别是您给 Manager 的任何边距或填充。在这种情况下,当您执行以下操作时,您会从左侧“缩进”管理器 16 个像素:

hm_btn_family.setMargin(10, 0, 0, 16)

因此,您的按钮的最大宽度似乎可能是 Display.getWidth()/4 - 4。

但是如果你真的想管理字段的大小,你应该在它被添加到的 Manager 的 sublayout 方法中实际做到这一点。因此,实现这种大小和位置的最佳方法是创建自己的 Manager 并自己布置 - 为此,您可以查看 BB 网站上的以下知识库文章:

http://supportforums.blackberry.com/t5/Java-Development/Create-a-custom-layout-manager-for-a-screen/ta-p/442990

http://supportforums.blackberry.com/t5/Java-Development/How-to-Extend-Manager/ta-p/446749

但是在这种情况下,我想我建议您只使用可以从这篇 KB 文章中窃取的 Horizo​​ntalFieldManagers 之一,再次在 BB 网站上:

http://supportforums.blackberry.com/t5/Java-Development/Implement-advanced-buttons-fields-and-managers/ta-p/488276

于 2013-09-12T16:11:25.460 回答