Layout

interface Layout

Layouts control the positioning of a PositionableContainer's children. They are also responsible for reporting the ideal size for a view given it's contents.

Layouts automatically take control of content positioning; therefore they should be used in preference of manually monitoring a PositionableContainer's size.

A PositionableContainer's Layout will be asked to perform positioning whenever that PositionableContainer's size changes or it becomes visible after one or more of its children has triggered a layout. A child will trigger a layout if its bounds change or if it changes visibility.

Author

Nicholas Eddy

Inheritors

Types

Link copied to clipboard
object Companion

Functions

Link copied to clipboard

Gets the child within the Positionable at the given point. The default is to ignore these calls and let the caller perform their own search for the right child. But Layouts are free to return a value here if it can be done more efficiently.

Link copied to clipboard
open fun idealSize(container: PositionableContainer, default: Size? = null): Size?

Returns the ideal size of the Positionable based on its contents.

Link copied to clipboard
abstract fun layout(container: PositionableContainer)

Lays out the children of the given Positionable.

Link copied to clipboard
open fun minimumSize(container: PositionableContainer, default: Size = Empty): Size

Returns the minimum size of the Positionable based on its contents.

Link copied to clipboard
open fun requiresLayout(container: PositionableContainer, old: Size, new: Size): Boolean

Indicates whether a layout is needed because of the given size change to the Container. This is called whenever the container's size changes.

Indicates whether a layout is needed because of the given size preferences change to a child of the given Container. This is called whenever the container's size changes.

Indicates whether a layout is needed because of the given bounds change to a child of the given Container. This is called whenever the container's size changes.

Link copied to clipboard
infix fun Layout.then(onLayout: (PositionableContainer) -> Unit): Layout

Provides a way to get notified each time a Layout is done positioning.