initialLayout
initialLayout отображает содержимое по умолчанию в главном экране, когда другие экраны не открыты.
XML-элемент |
|
|---|---|
Java-класс |
|
Основы
initialLayout — вложенный элемент компонента appLayout.
Пример определения initialLayout в main-view.xml:
<mainView xmlns="http://jmix.io/schema/flowui/main-view"
title="msg://MainView.title">
<appLayout>
<navigationBar .../>
<drawerLayout .../>
<initialLayout>
<image id="urlImage"
resource="https://www.jmix.io/uploads/framework_image_9efadbc372.svg"
width="100%"
height="100%"/>
</initialLayout>
</appLayout>
</mainView>
В XML корневой элемент initialLayout загружается как VerticalLayout.
Также исходный контейнер можно получить или заменить с помощью Java API StandardMainView:
-
getInitialLayout()возвращает корневой компонент исходного контейнера. -
setInitialLayout()заменяет компонент исходного контейнера.
Компоненты внутри initialLayout могут быть инжектированы в MainView, например:
@ViewComponent
private JmixImage<Object> urlImage;
@Autowired
private Notifications notifications;
@Subscribe
public void onInit(final InitEvent event) {
urlImage.setSrc("https://www.jmix.io/uploads/framework_image_9efadbc372.svg");
urlImage.setWidth("100%");
urlImage.setHeight("100%");
}
@Subscribe(id = "urlImage", subject = "singleClickListener")
public void onUrlImageClick(final ClickEvent<JmixImage<?>> event) {
Notification.show("Clicked!");
}
Атрибуты
initialLayout поддерживает общие атрибуты компонентов и атрибуты контейнера, описанные для vbox.