Vaadin Flow @Route аннотация с набором макетов ломает стиль макета - PullRequest
0 голосов
/ 16 января 2019

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

1 Ответ

0 голосов
/ 22 января 2019

Может быть, @Route свойству layout нужен класс java вместо класса Kotlin?

Попробуйте layout = DashboardView::class.java.

См. https://kotlinlang.org/docs/reference/reflection.html

Обратите внимание, что ссылка на класс Kotlin отличается от класса Java ссылка. Чтобы получить ссылку на класс Java, используйте свойство .java для экземпляр KClass.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...