开发者

LWUIT 1.5 Table - horizontal spanning layout

开发者 https://www.devze.com 2023-03-28 02:24 出处:网络
I am wondering if this is a bug or just my faulty code. I\'ve been trying to render table with some horizontal spanning. This is how it should look like:

I am wondering if this is a bug or just my faulty code. I've been trying to render table with some horizontal spanning. This is how it should look like:

LWUIT 1.5 Table - horizontal spanning layout

In LWUIT 1.4 everything worked correctly. Since 1.5 the table looks like:

LWUIT 1.5 Table - horizontal spanning layout

My implementation:

DefaultTableModel model = new DefaultTableModel(new String[]{"", "", "", ""}, new String[][]{
                {"Header", null, null, null},
                {"1", "2", "3", "4"},
                {"1", "2", "3", "4"},
                {"String", null, "String", null}});


Table tab = new Table(model, false) {

        protected Component createCell(Object value, final int row, final int column, boolean editable) {
            Component c = super.createCell(value, row, column, editable);
            c.setFocusable(false);
            return c;
        }

        protected TableLayout.Constraint create开发者_开发技巧CellConstraint(java.lang.Object value, int row, int column) {
            TableLayout.Constraint tlay = super.createCellConstraint(value, row, column);
            if (row == 0 && column == 0) {
                tlay.setHorizontalSpan(4);
                tlay.setHorizontalAlign(Table.CENTER);
            } else if (row == 3)) {
                if (column == 0) {
                    tlay.setHorizontalSpan(2);
                    tlay.setWidthPercentage(50);
                } else if (column == 2) {
                    tlay.setHorizontalSpan(2);
                    tlay.setWidthPercentage(50);
                }
            } else if (row != 0) {
                tlay.setWidthPercentage(25);
            }
            return tlay;
        }

    };


The bug (in LWUIT) is triggered by the tlay.setWidthPercentage(50); which you can remove and still get the expected result. It seems the width percentage value doesn't take spanning into consideration which I'm guessing it should.

You should file a bug for this in the issue tracker, thanks for the bug.


I added this line

TableLayout.setDefaultColumnWidth(1);

before

Table tab = new Table(model, false) {
...

and it worked out.

0

精彩评论

暂无评论...
验证码 换一张
取 消