2014-10-11 57 views
1

我是Vaadin的新手,我正在使用TabSheet附加一些标签。我想知道是否可以从他们的标题中获得更多功能。 例如,当选择一个选项卡并且用户单击其标题时,会出现一个下拉菜单。 我已经试用了TabSheet的现有侦听器,并且我得出结论说我必须创建一个自定义侦听器。问题是,当我点击选定的标签标题时,我无法找到解决事件的方法...Vaadin TabSheet。标签标题中的其他功能

回答

2

您可以在TabSheet上使用SelectedTabChangeListener。当单击标题时它会触发事件,并且您可以重新选择当前标签等。这会很麻烦。

为什么不使用MenuBar?这不正是你想要的吗? https://demo.vaadin.com/valo-theme/#!menubars

+1

谢谢您的回答,但我一直在寻找为了完全不同的东西。我会尽量使用你的想法菜单吧! – kostia 2014-12-07 08:57:48

+0

从[文档](https://vaadin.com/docs/-/part/framework/layout/layout-tabsheet.html#layout.tabsheet.events):*重新选择当前选定的选项卡不会触发事件* 。如果他想在当前活动选项卡中显示下拉菜单,则可能会出现问题。事实上,这是我的情况,它阻止我为我的目的使用SelectedTabChangeListener。 – Pere 2017-03-24 08:57:32

1

我有同样的问题(Vaadin 7.4),你可以做什么是你可以围绕一个<div onclick="...">captionText</div>的标签说明,并添加JavaScript回调函数:

final TabSheet sheet = new TabSheet(); 
sheet.setTabCaptionsAsHtml(true); // don't forget this! 

// This is the callback 
JavaScript.getCurrent().addFunction("clickedTab", new JavaScriptFunction() { 
    @Override 
    public void call(JsonArray arguments) { 
     LOGGER.info(arguments.getString(0)); // this is 'some identifier'     
    } 
}); 

final TabSheet.Tab tab = sheet.addTab(component, "<div onclick=\"clickedTab('some identifier');\">captionText/div>"); 
+0

非常感谢Erik!我会在一个新项目中尝试一下! – kostia 2015-10-26 10:56:22