public class Flow extends Container
As many children as possible will be laid out on the first row. If the next remaining child does not fit on the row, a new row is created in order to lay out the remaining children. This process is repeated until all children are laid out. To know how many children can be laid out in a single row, the optimal size of the children is used.
In a horizontal flow, all the widgets of the same row will have the same height. In a vertical flow, all the widgets of the same row will have the same width.
Horizontal:
Vertical:

NO_CONSTRAINT| Constructor and Description |
|---|
Flow(boolean orientation)
Creates a flow specifying its orientation.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addChild(Widget child)
Adds the specified widget to the end of the list of children of this container.
|
protected void |
computeContentOptimalSize(Size size)
Computes the optimal size of the widget.
|
boolean |
getOrientation()
Gets the orientation of this flow.
|
void |
insertChild(Widget child,
int index)
Inserts the specified widget at the specified index in the list of children of this container.
|
protected void |
layOutChildren(int contentWidth,
int contentHeight)
Lays out the children of this container.
|
void |
removeAllChildren()
Removes all the children of this container.
|
void |
removeChild(Widget child)
Removes the specified widget from the list of children of this container.
|
void |
replaceChild(int index,
Widget child)
Replaces the child at the specified index in the list of children of this container by the specified widget.
|
void |
setOrientation(boolean orientation)
Sets the orientation of this flow.
|
changeChildIndex, computeChildOptimalSize, getChild, getChildIndex, getChildren, getChildrenCount, getContentBounds, getContentHeight, getContentWidth, getContentX, getContentY, getWidgetAt, layOutChild, renderChild, renderContent, setHiddenChild, setHiddenChildren, setShownChild, setShownChildren, updateStyleaddClassSelector, contains, containsWidget, getAbsoluteX, getAbsoluteY, getDesktop, getHeight, getParent, getStyle, getWidth, getX, getY, handleEvent, hasClassSelector, isAttached, isEnabled, isInState, isShown, isTransparent, onAttached, onDetached, onHidden, onLaidOut, onShown, removeAllClassSelectors, removeClassSelector, render, requestLayOut, requestRender, requestRender, setClassSelectors, setEnabled, setPosition, setStylepublic Flow(boolean orientation)
orientation - the orientation of the flow (see LayoutOrientation).public void addChild(Widget child)
ContainerThe container needs to be laid out again.
Should be called in the display thread to avoid concurrency issues.
addChild in class Containerchild - the widget to add.Widget.requestLayOut(),
Widget.isAttached()protected void computeContentOptimalSize(Size size)
WidgetThis method does not consider the border, margin, padding and dimension specified in the style.
The given size is the available size for this widget in its parent. A width or a height equal to
Widget#NO_CONSTRAINT means that there is no constraint on this dimension.
The given size is modified to set the optimal size.
computeContentOptimalSize in class Widgetsize - the size available for the content.public boolean getOrientation()
LayoutOrientation).public void insertChild(Widget child, int index)
ContainerThe container needs to be laid out again.
Should be called in the display thread to avoid concurrency issues.
insertChild in class Containerchild - the widget to add.index - the index at which the widget should be inserted.Widget.requestLayOut(),
Widget.isAttached()protected void layOutChildren(int contentWidth,
int contentHeight)
ContainerThe given size is the size of this container minus the border, margin and padding specified in the style.
When this method returns the children of this container have been lay out using
Container.layOutChild(Widget, int, int, int, int).
layOutChildren in class ContainercontentWidth - the width available for the content.contentHeight - the height available for the content.public void removeAllChildren()
ContainerThe container needs to be laid out again.
Should be called in the display thread to avoid concurrency issues.
removeAllChildren in class ContainerWidget.requestLayOut()public void removeChild(Widget child)
ContainerThe container needs to be laid out again.
If the widget is not in the list of children of the container, nothing is done.
Should be called in the display thread to avoid concurrency issues.
removeChild in class Containerchild - the widget to remove.Widget.requestLayOut()public void replaceChild(int index,
Widget child)
ContainerIf the specified widget is already the child at the specified index of the list of children, nothing is done.
The container needs to be laid out again.
Should be called in the display thread to avoid concurrency issues.
replaceChild in class Containerindex - the index of the child to replace.child - the widget to add.Widget.requestLayOut(),
Widget.isAttached()public void setOrientation(boolean orientation)
orientation - the orientation to set (see LayoutOrientation).