dom - 如何替换面板中的 GWT 小部件?

标签 dom gwt

我有一个 Composite,它的主要小部件有两个 child ,因此:

public MyComposite() {
    child1 = new FlowPanel();
    child1.getElement().setId("child1");

    child2 = new FlowPanel();
    child2.getElement().setId("child2");

    panel = new FlowPanel();
    panel.add(child1);
    panel.add(child2);
    initWidget(panel);
}

在构建 MyComposite 后的一段时间,我想将 child1 换掉,用另一个小部件 new-child1 替换它。

我也许可以通过调用 panel.remove(child1) 来删除 child1,然后通过调用 panel.add(new-child1) 添加我的新小部件;但这会导致 child2 首先被渲染,不是吗?

那么,如何在不改变面板子级顺序的情况下将 child1 替换为 new-child1 呢?

最佳答案

试试 insert()而不是 add() .

很遗憾,您无法调用 insert()因为它是 protected ,所以你需要扩展FlowPanel :

public class UsefulFlowPanel extends FlowPanel {
    public void add (int index, Widget child) {
        insert (child, getElement(), index, true);
    }
}

应该管用。

关于dom - 如何替换面板中的 GWT 小部件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1508165/

相关文章:

javascript - 为什么 <!--<script> 会在浏览器上导致 DOM 树中断?

javascript - 即 8 : remove node keep children

eclipse - 更新 GWT Eclipse 插件后应用程序将无法编译

javascript - 在 GWT 中捕获字体调整大小事件

java - GWT UiBinder - 将新对象分配给 UiField 引用

java - 无法在 gwt maven 项目中添加 couchdb4j 依赖项

Javascript DOM : Setting custom DOM element properties

java - 如何 "rename"一个 xml 元素

javascript - 如何多次追加 HTML 元素

gwt - 编辑器和整数字段的多个问题