如何使用UIBinder在GWT的TabPanel中设置默认选项卡选择
我在ui.xml文件中编写了一个选项卡面板。我想保留其中一个选项卡作为默认选择(如果用户没有指定任何内容,您可能会认为第0个选项卡已被选中,但这不是行为)。如何通过ui.xml文件在中执行此操作?我试图搜索一个属性,如如何使用UIBinder在GWT的TabPanel中设置默认选项卡选择,gwt,uibinder,tabpanel,Gwt,Uibinder,Tabpanel,我在ui.xml文件中编写了一个选项卡面板。我想保留其中一个选项卡作为默认选择(如果用户没有指定任何内容,您可能会认为第0个选项卡已被选中,但这不是行为)。如何通过ui.xml文件在中执行此操作?我试图搜索一个属性,如 但这似乎不起作用。我不想以编程方式设置默认选择 提前谢谢。我找不到任何其他方法,因此我为TabPanel制作了一个简单的包装: public class TabPanelWrapper extends Composite implements HasWidgets {
但这似乎不起作用。我不想以编程方式设置默认选择
提前谢谢。我找不到任何其他方法,因此我为TabPanel制作了一个简单的包装:
public class TabPanelWrapper extends Composite implements HasWidgets {
private FlowPanel wrapper;
private TabPanel tabPanel;
private Integer defaultTab;
public TabPanelWrapper() {
wrapper = new FlowPanel();
initWidget(wrapper);
}
public void setDefaultTab(int dafaultTab) {
this.defaultTab = dafaultTab;
if(tabPanel != null && defaultTab < tabPanel.getWidgetCount())
tabPanel.selectTab(defaultTab);
}
@Override
public void add(Widget w) {
if(w instanceof TabPanel && tabPanel == null) {
tabPanel = (TabPanel) w;
if(defaultTab != null && defaultTab < tabPanel.getWidgetCount())
tabPanel.selectTab(defaultTab);
wrapper.add(tabPanel);
}
}
@Override
public void clear() {
wrapper.clear();
}
@Override
public Iterator<Widget> iterator() {
return wrapper.iterator();
}
@Override
public boolean remove(Widget w) {
return wrapper.remove(w);
}
}
唯一的陷阱是TabPanel被包装在表示FlowPanel的额外
元素中
使用此方法,您可以向任何小部件添加任何属性;)
<t:TabPanelWrapper defaultTab="1">
<g:TabPanel>
<g:Tab text="Header #1">
<g:FlowPanel>
<g:Label>Content #1</g:Label>
</g:FlowPanel>
</g:Tab>
<g:Tab text="Header #2">
<g:FlowPanel>
<g:Label>Content #2</g:Label>
</g:FlowPanel>
</g:Tab>
<g:Tab text="Header #3">
<g:FlowPanel>
<g:Label>Content #3</g:Label>
</g:FlowPanel>
</g:Tab>
</g:TabPanel>
</t:TabPanelWrapper>