LWUIT 1.5 Table - горизонтальная разметка - PullRequest
3 голосов
/ 16 августа 2011

Мне интересно, это ошибка или просто мой неисправный код.Я пытался визуализировать таблицу с некоторым горизонтальным охватом.Вот как это должно выглядеть:

enter image description here

В LWUIT 1.4 все работало правильно.С версии 1.5 таблица выглядит так:

enter image description here

Моя реализация:

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 createCellConstraint(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;
        }

    };

Ответы [ 2 ]

1 голос
/ 18 августа 2011

Ошибка (в LWUIT) вызывается tlay.setWidthPercentage(50);, которую вы можете удалить и все же получить ожидаемый результат.Кажется, что значение ширины в процентах не принимает во внимание то, что, я думаю, должно.

Вы должны сообщить об ошибке в трекере, спасибо за ошибку.

0 голосов
/ 04 февраля 2012

Я добавил эту строку

TableLayout.setDefaultColumnWidth(1);

до

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

и это сработало.

...