onGloballyPositioned
Compose Modifier
Common
fun Modifier.onGloballyPositioned(onGloballyPositioned: (LayoutCoordinates) -> Unit) =
this then OnGloballyPositionedElement(onGloballyPositioned)
Invoke onGloballyPositioned
with the LayoutCoordinates
of the element when the global
position of the content may have changed. Note that it will be called after a composition
when the coordinates are finalized.
This callback will be invoked at least once when the LayoutCoordinates
are available, and every
time the element's position changes within the window. However, it is not guaranteed to be
invoked every time the position relative to the screen of the modified element changes. For
example, the system may move the contents inside a window around without firing a callback. If
you are using the LayoutCoordinates
to calculate position on the screen, and not just inside
the window, you may not receive a callback.
Code Examples
OnGloballyPositioned
@Composable
fun OnGloballyPositioned() {
Column(
Modifier.onGloballyPositioned { coordinates ->
// This will be the size of the Column.
coordinates.size
// The position of the Column relative to the application window.
coordinates.positionInWindow()
// The position of the Column relative to the Compose root.
coordinates.positionInRoot()
// These will be the alignment lines provided to the layout (empty here for Column).
coordinates.providedAlignmentLines
// This will be a LayoutCoordinates instance corresponding to the parent of Column.
coordinates.parentLayoutCoordinates
}
) {
Box(Modifier.size(20.dp).background(Color.Green))
Box(Modifier.size(20.dp).background(Color.Blue))
}
}