Ниже описаны события жизненного цикла фрагмента, на которые можно подписаться в контроллере для реализации необходимой бизнес-логики.
-
InitEvent
посылается, когда контроллер фрагмента и все его компоненты, заданные декларативно, созданы, а инжекция зависимостей завершена. Вложенные фрагменты на этом этапе ещё не инициализированы. Некоторые визуальные компоненты инициализированы не полностью: например, кнопки ещё не связаны с действиями. Если фрагмент подключается к хост-экрану декларативно в XML, данное событие посылается после InitEvent контроллера хоста. В противном случае событие посылается, когда фрагмент подключается к дереву компонентов хост-экрана.
-
AfterInitEvent
посылается, когда контроллер фрагмента и все его компоненты, заданные декларативно, созданы, инжекция зависимостей завершена, и все компоненты завершили свою внутреннюю процедуру инициализации. Вложенные фрагменты (при наличии) опубликовали свои событияInitEvent
иAfterInitEvent
. В слушателе этого события можно создавать визуальные компоненты и компоненты данных, а также выполнить дополнительную инициализацию, если она зависит от инициализации вложенных фрагментов.
-
AttachEvent
посылается после того, как фрагмент добавлен к дереву компонентов хост-экрана. В этот момент фрагмент полностью инициализирован, событияInitEvent
иAfterInitEvent
отосланы. В слушателе данного события можно обращаться к хост-экрану, используя методыgetHostScreen()
иgetHostController()
.
-
DetachEvent
посылается после того, как фрагмент удален из дерева компонентов хост-экрана. В слушателе данного события нельзя обращаться к хост-экрану.
Пример подписки на события фрагмента:
link:../../../../../../source/gui/screens/screenFragment_events_1.java[role=include]
В контроллере фрагмента можно также подписаться на события включающего экрана путем указания значения PARENT_CONTROLLER
в атрибуте target
аннотации, например:
link:../../../../../../source/gui/screens/fragment_screen_events_1.java[role=include]
Таким способом можно обработать любое событие, в том числе InitEntityEvent, посылаемое экранами редактирования.