我正在开发一个应用程序,我应该使用嵌套的水平管理器。我正在服用内外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);
}
};
答案 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而不是......