1

使用 FlexTable 或 Grid,我想将多个 FlowPanel 添加到 1 个单元格中。我知道这可以通过将多个 FlowPanel 添加到 1 个(父)FlowPanel 并将父面板添加到单元格中来实现。

只是想知道是否有办法将这些多个小部件添加到一个单元格中,而不将它们包装到(父)流面板中?

(如下例所示,我不希望父 div 而是希望子 div 直接出现在标签下方。)

<TABLE>
    <TR>
        <td>
            <div id="I-DO-NOT-WANT-THIS-PARENT-DIV">
                <div id="CHILD1"></div>
                <div id="CHILD2"></div>
                <div id="CHILD3"></div>
                <div id="CHILD4"></div>
            </div>
        </td>
    </TR>   
</TABLE>  

有任何想法吗?

4

1 回答 1

0

您可以操纵 dom 并将元素移动到它们的祖父母。使用 gwtquery 很容易:

import static com.google.gwt.query.client.GQuery.*;
...
final FlowPanel panel = new FlowPanel();
panel.add(new Label("1"));
panel.add(new Label("2"));
panel.add(new Label("3"));

final FlexTable table = new FlexTable();
table.setWidget(0, 0, panel);
RootPanel.get().add(table);

$(panel).children().appendTo($(panel).parent());

如果您愿意,使用 gquery 您甚至可以<td>将表提升为 aPanel并继续向其中添加小部件:

HTMLPanel newpanel = $(panel).parent().as(Widgets).panel().widget();
panel.removeFromParent();
newpanel.add(new Label("4"));
于 2013-03-19T22:20:45.807 回答