ButtonField的位置

时间:2010-06-17 21:22:38

标签: blackberry

我想放置图像中显示的按钮:

alt text http://www.freeimagehosting.net/uploads/413b8990b3.png

为此我使用以下代码,但它不适合我,任何人都可以帮助我

 topbarManager = new HorizontalFieldManager(); 

    topbarLeftManager = new HorizontalFieldManager(Field.FIELD_LEFT);
    topbarRightManager = new HorizontalFieldManager(Field.FIELD_RIGHT);
    topbarCenterManager = new HorizontalFieldManager(Field.FIELD_HCENTER);
    topbarLeftManager.add(new ButtonField("first"));
    topbarRightManager.add(new ButtonField("second"));
    topbarCenterManager.add(new ButtonField("third"));
    topbarManager.add(topbarLeftManager);
    topbarManager.add(topbarCenterManager);
    topbarManager.add(topbarRightManager);

我没有按照我的要求得到结果。

任何人都可以帮帮我。

非常感谢

1 个答案:

答案 0 :(得分:2)

according to docs.

Horizo​​ntalFieldManager布局管理器将UI组件排列在一个水平行中,从屏幕左侧开始,到屏幕右侧结束。由于此布局管理器水平排列UI组件,因此无法将水平样式位应用于UI组件(例如,Field.FIELD_LEFT,Field.FIELD_HCENTER或Field.FIELD_RIGHT)。您可以应用垂直样式位(例如,Field.FIELD_TOP,Field.FIELD_BOTTOM或Field.FIELD_VCENTER)。

所以,如果你想看到Field.FIELD_LEFT效果,请使用

VerticalFieldManager hfm = new VerticalFieldManager(Manager.USE_ALL_WIDTH);

而不是Horizo​​ntalFieldManager,您将看到类似效果的阶梯情况。

布局UI最好的事情是使用自定义布局

HorizontalFieldManager hfm = new HorizontalFieldManager(Manager.USE_ALL_WIDTH){
            protected void sublayout(int maxWidth, int maxHeight) {
                Field f;
                int w = Display.getWidth();
                int x=0;
                for (int i = 0; i < getFieldCount(); i++) {
                    f = getField(i);
                    layoutChild(f, f.getPreferredWidth(), f.getPreferredHeight());
                    setPositionChild(f, x, 0);
                    x+=(w-f.getWidth())/2;
                }


                setExtent(maxWidth, maxHeight);

            }
        };