Я использую 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 {
...
}