1

我正在使用 Vaadin 12.0.3,我正在尝试使用AppLayout. 因此,我在AppLayout主视图中添加了包含菜单的DashboardView(扩展RouterLayout)。这个视图应该是MonitoringView显示一些数据的父视图。因此,我将@Route注释设置为MonitoringView@Route(Monitoring.route, layout = DashboardView::class).

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

这是上述类的代码:

DashboardView它应该是另一个视图的父视图并包含菜单 ( 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)
    }
}

显示监控数据的MonitoringView,当用户点击“第 1 页”时应显示在菜单栏下方:

@UIScope
@SpringComponent
@Route("monitoring", layout = DashboardView::class)
class MonitoringView() : VerticalLayout(), BeforeEnterObserver {
    ...
}
4

1 回答 1

0

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

试试layout = DashboardView::class.java

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

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

于 2019-01-22T11:18:47.403 回答