Enaml doesn't allow you to delegate the position of a widget in the hierarchy using the declarative syntax (you can do it with Include and procedural code). Your simplest option is to use a child Container on the banner, which holds the widgets. Something like the following:
from enaml.widgets.api import *
enamldef BannerContainer(Container):
alias text: label.text
Label: label:
pass
enamldef Main(Window):
Container:
BannerContainer:
text = 'First Banner'
Container:
padding = 0
Field: pass
Field: pass
Field: pass
BannerContainer:
text = 'Second Banner'
Container:
padding = 0
PushButton: pass
PushButton: pass
PushButton: pass
Alternatively, you can subclass container and reimplement the layout_constraints method to do whatever you want for layout purposes (see the TaskDialog implementation for an example of this), or use templates and a compile-time for-each loop to expand the child widgets (see the advanced template example).