我正在使用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
答案 0 :(得分:0)
也许@Route
属性layout
需要Java类而不是Kotlin类?
尝试layout = DashboardView::class.java
。
请参见https://kotlinlang.org/docs/reference/reflection.html
请注意,Kotlin类引用与Java类不同 参考。要获取Java类引用,请使用.java属性 一个KClass实例。