如何在 TabLayoutPanel 中禁用选项卡(即用户单击时无法打开选项卡)?我在线搜索但无法找到解决方案
谢谢
TabLayoutPanel myPanel = new TabLayoutPanel();
// Add children...
myPanel.addBeforeSelectionHandler(new BeforeSelectionHandler<Integer>() {
@Override
public void onBeforeSelection(BeforeSelectionEvent<Integer> event) {
// Simple if statement - your test for whether the tab should be disabled
// will probably be more complicated
if (event.getItem() == 1) {
// Canceling the event prevents the tab from being selected.
event.cancel();
}
}
});
如果您想为禁用选项卡设置与启用选项卡不同的样式,您可以使用TabLayoutPanel#getTabWidget
获取选项卡小部件并为其添加样式名称。
对于以后遇到此问题的任何人:
从 GWT 1.6 版开始,禁用/启用选项卡已内置到 GWT 中。该类TabBar
有一个方法setTabEnabled(int index, boolean enabled)
可以启用/禁用给定索引处的选项卡。
例如,要禁用 TabPanel 中的所有选项卡:
TabPanel myTabPanel = new TabPanel();
// Add children
TabBar tabBar = myTabPanel.getTabBar();
for(int i=0; i<tabBar.getTabCount(); i++) {
tabBar.setTabEnabled(i, false);
}
有关更多信息,请参阅GWT javadoc。
为禁用的选项卡设置不同的样式(GWT 会自动执行此操作,但如果您想更改样式):禁用的tabBarItem
div 被赋予另一个 CSS 类:gwt-TabBarItem-disabled
.
Tab
您可以通过将类转换为来访问选项卡样式Widget
TabPanel tabPanel = new TabPanel();
((Widget)tabPanel().getTabBar().getTab(tabsToDisable.iterator().next())).addStyleName("disabled");