initialLayout

initialLayout отображает содержимое по умолчанию в главном экране, когда другие экраны не открыты.

XML-элемент

initialLayout

Java-класс

VerticalLayout

Основы

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.

Обработчики

Имя Описание

AttachEvent

Срабатывает при присоединении контейнера к UI.

ClickEvent

Срабатывает при нажатии на контейнер.

DetachEvent

Срабатывает при отсоединении контейнера от UI.

Элементы

initialLayout может содержать компоненты и контейнеры, которые отображаются как исходное содержимое главного экрана.