OnGloballyPositionedModifier
interface OnGloballyPositionedModifier : Modifier.Element
A modifier whose onGloballyPositioned is called with the final LayoutCoordinates of the
Layout when the global position of the content may have changed.
Note that it will be called after a composition when the coordinates are finalized.
Usage example:
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.size
import androidx.compose.ui.layout.positionInRoot
import androidx.compose.ui.layout.onGloballyPositioned
import androidx.compose.ui.layout.positionInWindow
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 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))
}
Summary
Public methods |
abstract Unit |
Called with the final LayoutCoordinates of the Layout after measuring.
|
Inherited functions |
From class Element
Boolean |
all(predicate: (Modifier.Element) -> Boolean)
Returns true if predicate returns true for all Elements in this Modifier or if
this Modifier contains no Elements.
|
Boolean |
any(predicate: (Modifier.Element) -> Boolean)
Returns true if predicate returns true for any Element in this Modifier.
|
R |
foldIn(initial: R, operation: (R, Modifier.Element) -> R)
Accumulates a value starting with initial and applying operation to the current value
and each element from outside in.
Elements wrap one another in a chain from left to right; an Element that appears to the
left of another in a + expression or in operation's parameter order affects all
of the elements that appear after it. foldIn may be used to accumulate a value starting
from the parent or head of the modifier chain to the final wrapped child.
|
R |
foldOut(initial: R, operation: (Modifier.Element, R) -> R)
Accumulates a value starting with initial and applying operation to the current value
and each element from inside out.
Elements wrap one another in a chain from left to right; an Element that appears to the
left of another in a + expression or in operation's parameter order affects all
of the elements that appear after it. foldOut may be used to accumulate a value starting
from the child or tail of the modifier chain up to the parent or head of the chain.
|
|
|