# onGloballyPositioned

Common/AllAndroid/JVM

## Functions summary

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/onGloballyPositioned.modifier#(androidx.compose.ui.Modifier).onGloballyPositioned(kotlin.Function1)( onGloballyPositioned: (https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/LayoutCoordinates) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` Invoke `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/onGloballyPositioned.modifier#(androidx.compose.ui.Modifier).onGloballyPositioned(kotlin.Function1)` with the `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/LayoutCoordinates` of the element when the global position of the content may have changed. | Cmn |

## Functions

### Modifier.onGloballyPositioned

Cmn Artifact: [androidx.compose.ui:ui](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/layout/OnGloballyPositionedModifier.kt+function:onGloballyPositioned) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun Modifier.onGloballyPositioned(
    onGloballyPositioned: (LayoutCoordinates) -> Unit
): Modifier
```

Invoke `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/onGloballyPositioned.modifier#(androidx.compose.ui.Modifier).onGloballyPositioned(kotlin.Function1)` with the `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/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 `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/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 `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/LayoutCoordinates` to calculate position on the screen, and not just inside the window, you may not receive a callback.

Usage example:

```kotlin
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.size
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.layout.onGloballyPositioned
import androidx.compose.ui.layout.positionInRoot
import androidx.compose.ui.layout.positionInWindow
import androidx.compose.ui.unit.dp

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