Codenameone TableLayout约束horizontalSpan不起作用

Codenameone TableLayout约束horizontalSpan不起作用,codenameone,Codenameone,当我使用horizontalSpan时,图像不会显示,但是当我使用widthPercentage时,完美的图像会显示出来。 如何跨越ScaleImage标签 我的代码: TableLayout tm=new TableLayout(4,6); tm.setGrowHorizontally(true); Container con=new Container(tm); con.setScrollableY(true); hi.add(BorderLayout

当我使用horizontalSpan时,图像不会显示,但是当我使用widthPercentage时,完美的图像会显示出来。 如何跨越ScaleImage标签

我的代码:

    TableLayout tm=new TableLayout(4,6);
    tm.setGrowHorizontally(true);
    Container con=new Container(tm);
    con.setScrollableY(true);
    hi.add(BorderLayout.CENTER,con);
    TableLayout.Constraint cs;

    Image icon=profilbillede.scaled(800, -1);
    ScaleImageLabel lb=new ScaleImageLabel(icon);
    lb.setBackgroundType(Style.BACKGROUND_IMAGE_SCALED_FIT);
    con.add(tm.createConstraint().horizontalSpan(2),lb);

下面的代码有效,因为我删除了跨度。表需要自动计算列宽,除非您明确告诉它列的宽度

当您使用跨距时,我们不知道宽度是否适用于第一列或第二列,因此忽略它,假设您有跨距的原因而不使用一列。在这种情况下,可以通过“首选大小”或“宽度”元素在不同的单元格中定义宽度

作为补充说明,在将图像添加到
ScaledLabel
之前,无需缩放图像,您将进行双倍缩放,从而降低图像的外观

Form hi = new Form("Table", new BorderLayout());
TableLayout tm=new TableLayout(4,6);
tm.setGrowHorizontally(true);
Container con=new Container(tm);
con.setScrollableY(true);
hi.add(BorderLayout.CENTER,con);
TableLayout.Constraint cs;

Image icon=duke.scaled(800, -1);
ScaleImageLabel lb=new ScaleImageLabel(icon);
lb.setBackgroundType(Style.BACKGROUND_IMAGE_SCALED_FIT);
con.add(tm.createConstraint(),lb);
hi.show();

我对我想要的东西没有太具体。我需要在图像的左角有一个图像,图像右侧有两行文本,即跨越图像2x2单元格。这并不意味着图像在跨越时根本不显示。更有趣。如果我先将文本标签放在第0列,然后将图像放在第4列,那么即使我跨越水平和垂直方向,图像也会完美地显示出来。多亏了您的输入,我找到了自己的方法。通过结合垂直跨度和宽度百分比,我得到了我想要的。问题是,如果列中没有条目,则宽度实际上为0。宽度计算中忽略跨距列,因为我们无法知道您指的是哪一列,所以0+0=0。