gpt4 book ai didi

java - 我可以在 GWT 2.0 中混合声明式布局和编程式布局吗?

转载 作者:行者123 更新时间:2023-12-02 08:35:26 28 4
gpt4 key购买 nike

我正在尝试重做 GWT 2.0 发布之前制作的现有面板。该面板有几个文本字段和一个位于 VerticalPanel 下方的可滚动面板。

我想做的是使用 UIBinder 制作可滚动面板,然后将其添加到 VerticalPanel 下面是我创建的一个示例来说明这一点:

 public class ScrollTablePanel extends ResizeComposite{

interface Binder extends UiBinder<Widget, ScrollTablePanel > { }
private static Binder uiBinder = GWT.create(Binder.class);

@UiField FlexTable table1;
@UiField FlexTable table2;

public Test2() {

initWidget(uiBinder.createAndBindUi(this));



table1.setText(0, 0, "testing 1");
table1.setText(0, 1, "testing 2");
table1.setText(0, 2, "testing 3");

table2.setText(0, 0, "testing 1");
table2.setText(0, 1, "testing 2");
table2.setText(0, 2, "testing 3");
table2.setText(1, 0, "testing 4");
table2.setText(1, 1, "testing 5");
table2.setText(1, 2, "testing 6");
}
}

然后是 xml:

<ui:UiBinder 
xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'
xmlns:mail='urn:import:com.test.scrollpaneltest'>
<g:DockLayoutPanel unit='EM'>
<g:north size="2">
<g:FlexTable ui:field="table1"></g:FlexTable>
</g:north>
<g:center>
<g:ScrollPanel>
<g:FlexTable ui:field="table2"></g:FlexTable>
</g:ScrollPanel>
</g:center>
</g:DockLayoutPanel>
</ui:UiBinder>

然后在 EntryPoint 中执行类似的操作:

 public void onModuleLoad() {

VerticalPanel vp = new VerticalPanel();
vp.add(new ScrollTablePanel());
vp.add(new Label("dummy label text"));
vp.setWidth("100%");

RootLayoutPanel.get().add(vp);
}

但是当我将 ScrollTablePanel 添加到 VerticalPanel 时,页面上只有第一个 FlexTable (test1) 可见,而不是整个 ScrollTablePanel。

有没有办法让这项工作能够在 GWT 2.0 中混合声明式布局和编程式布局?

最佳答案

你绝对可以,尽管它有点违背了使用 uiBinder 的初衷。当然,当您必须使用动态 gui 元素(例如 FlexTable)时,您无法避免初始化代码,但您仍然可以使用 @UiFactory 和 @UiField(provided=true) 来避免其中的一些代码。我相信您的问题与容器 VerticalPanel 的大小有关,请尝试将其设置为 100%。

关于java - 我可以在 GWT 2.0 中混合声明式布局和编程式布局吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1959144/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com