出现屏幕时出现以下错误: “警告:无法布局字段,高度或宽度不足”。
使用BB 5.0。
此屏幕从3个不同的屏幕调用,显示50%的屏幕或80%,具体取决于推动它的屏幕。
这个只有一个顶部(字段)横幅,一些BasicEditField,一个DateField,一个vew ObjectChoiceField和最后两个按钮。
为什么现在出现此错误? (2天前它没有,并且是相同的屏幕之前工作正常)。我应该在哪里检查错误?
此外,屏幕可以管理的高度或宽度是否有限制?
横幅代码,
public static Field getBanner() {
Background bg = BackgroundFactory.createSolidBackground(Color.WHITE);
HorizontalFieldManager hfm = new HorizontalFieldManager(Field.USE_ALL_WIDTH | Field.FIELD_VCENTER);
final Bitmap logo = Bitmap.getBitmapResource("logo_40px.png");
BitmapField _bitmap1 = new BitmapField(logo);
int i = Display.getWidth();
i = i - logo.getWidth();
i = i / 2;
_bitmap1.setSpace(i, 5);
hfm.add(_bitmap1);
hfm.setBackground(bg);
return hfm;
}
问候。
更新
屏幕创建我有这个: super(MainScreen.VERTICAL_SCROLL_MASK | MainScreen.VERTICAL_SCROLLBAR)
没有它,它的工作正常。但我不能向下滚动,对吧?
答案 0 :(得分:0)
您要将_bitmap1
和vfm
添加到hfm
,vfm
设置Field.USE_ALL_WIDTH
。我认为,将_bitmap1
添加到vfm
会更好。
修改
可能是您的徽标(带有添加的空间)对于屏幕上的横幅区域来说太大了。也许这样的事情会起作用:
public static Field getBanner() {
Background bg = BackgroundFactory.createSolidBackground(Color.WHITE);
final Bitmap logo = Bitmap.getBitmapResource("logo_40px.png");
final BitmapField _bitmap1 = new BitmapField(logo);
_bitmap1.setSpace((Display.getWidth() - logo.getWidth()) / 2, 5);
HorizontalFieldManager hfm = new HorizontalFieldManager(Field.USE_ALL_WIDTH | Field.FIELD_VCENTER) {
protected void sublayout(int width, int height) {
super.sublayout(width, height);
setExtent(width, Math.min(_bitmap1.getPreferredHeight(), height));
}
}
hfm.add(_bitmap1);
hfm.setBackground(bg);
return hfm;
}