具有布局集的Vaadin Flow @Route注释破坏布局样式

时间:2019-01-16 12:50:08

标签: spring-boot kotlin vaadin vaadin-flow vaadin12

我正在使用Vaadin 12.0.3,并且试图使用AppLayout创建顶部菜单栏。因此,我在主视图中添加了包含菜单的AppLayout-DashboardView(扩展了RouterLayout)。该视图应该是MonitoringView的父视图,其中显示了一些数据。因此,我将@Route注释设置为MonitoringView,如下所示:@Route(Monitoring.route, layout = DashboardView::class)

问题是,如果我将layout = DashboardView::class添加到注释中,MonitoringView的所有样式都将消失。这意味着不显示文本,(背景)颜色和阴影消失了,等等。当我从注解中删除布局部分时,一切看起来都很好,但是却看不到顶部的菜单栏。

这是上述类的代码:

DashboardView应该是另一个视图的父级,并包含菜单({​​{1}}):

AppLayout

显示监视数据的@UIScope @SpringComponent @Route("dashboard") @PageTitle("Dashboard") class DashboardView() : VerticalLayout(), BeforeEnterObserver, RouterLayout { init { val appLayout = AppLayout() val menu = appLayout.createMenu() menu.addMenuItems( AppLayoutMenuItem("Page 1", "monitoring"), AppLayoutMenuItem("Page 2") ) add(appLayout) } } ,当用户单击“页面1”时应显示在菜单栏下方:

MonitoringView

1 个答案:

答案 0 :(得分:0)

也许@Route属性layout需要Java类而不是Kotlin类?

尝试layout = DashboardView::class.java

请参见https://kotlinlang.org/docs/reference/reflection.html

  

请注意,Kotlin类引用与Java类不同   参考。要获取Java类引用,请使用.java属性   一个KClass实例。