-1

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

使用 BB 5.0。

此屏幕从 3 个不同的屏幕调用,它显示屏幕的 50% 或 80%,具体取决于哪个屏幕正在推动它。

这一个在顶部(字段)只有一个横幅,一些 BasicEditField,一个 DateField,一个 vew ObjectChoiceField,最后有 2 个按钮。

为什么现在出现这个错误?(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)

没有这个,它可以在屏幕上正常工作。但是我不能向下滚动,对吧?

4

1 回答 1

0

您正在将_bitmap1和添加vfmhfm,并且vfmField.USE_ALL_WIDTH设置。我认为,添加_bitmap1vfm.

编辑

可能是您的徽标(带有附加空间)对于屏幕上的横幅区域来说太大了。也许这样的事情会起作用:

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;
}
于 2013-07-08T15:04:51.647 回答