---
title: "onGloballyPositioned"
description: "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."
type: "modifier"
---

<div class='type'>Compose Modifier</div>

<a id='references'></a>
<div class='sourceset sourceset-common'>Common</div>


```kotlin
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
```kotlin
@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))
    }
}
```

