嵌套Horizo​​ntalFieldManagers的setExtent

时间:2011-03-09 15:45:18

标签: blackberry

我正在开发一个应用程序,我应该使用嵌套的水平管理器。我正在服用内外HFM。当我滚动字段时,innerHFM的字段在outerHFM上重叠。如何为innerHFM使用setExtent方法。我的innerHFM包含1 2 3 4 5等字段,而我的outerHFM包含下一个和上一个按钮。这是我实施的代码

outerHFM = new HorizontalFieldManager() {

            protected void sublayout(int maxWidth, int maxHeight) {

                layoutChild(next, maxWidth, maxHeight);
                setPositionChild(next, 300, 5);

                layoutChild(innerHfm, 200, maxHeight);
                setPositionChild(innerHfm, 10, 5);

                layoutChild(previous, maxWidth, maxHeight);
                setPositionChild(previous, 44, 5);

                setExtent(maxWidth, 40);

            }
        };

    innerHfm = new HorizontalFieldManager(Manager.HORIZONTAL_SCROLL|Manager.USE_ALL_WIDTH) {

        protected void sublayout(int maxWidth, int maxHeight) {
            int space = 0;
            int x = 90;
            for (int i = 0; i < cardsSize; i++) {
                layoutChild(numbtn[i], 210, maxHeight);
                setPositionChild(numbtn[i], x + space+offset, 0);
                space = space + 50;
            }
            setExtent(240, 40);
        }
    };

1 个答案:

答案 0 :(得分:0)

这个尺寸适用于我所有的现场经理。

int managerWidth;
int managerHeight;

public int getPreferredWidth() {
    return managerWidth;
}

public int getPreferredHeight() {
    return managerHeight;
}

public void sublayout(int w, int h) {
    super.sublayout(managerWidth, managerHeight);
    setExtent(managerWidth, managerHeight);
}

也许manualy positionig可能有问题,你可以使用AbsoluteFieldManager而不是......