如何在TabLayoutPanel中禁用选项卡(即用户无法在单击时打开选项卡)?我在线搜索但无法找到解决方案
由于
答案 0 :(得分:10)
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
获取选项卡窗口小部件并为其添加样式名称。
答案 1 :(得分:2)
对于后来遇到此问题的人:
从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
。
答案 2 :(得分:0)
您可以通过将课程Tab
投射到Widget
TabPanel tabPanel = new TabPanel();
((Widget)tabPanel().getTabBar().getTab(tabsToDisable.iterator().next())).addStyleName("disabled");