黑莓警告:无法布局字段,高度或宽度不足

时间:2013-07-08 14:47:45

标签: blackberry blackberry-5

出现屏幕时出现以下错误: “警告:无法布局字段,高度或宽度不足”。

使用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)

没有它,它的工作正常。但我不能向下滚动,对吧?

1 个答案:

答案 0 :(得分:0)

您要将_bitmap1vfm添加到hfmvfm设置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;
}