# layout

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/layout.modifier#(androidx.compose.ui.Modifier).layout(kotlin.Function3)(measure: https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/MeasureScope.(https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/Measurable, https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Constraints) -> https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/MeasureResult)` Creates a `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/LayoutModifier` that allows changing how the wrapped element is measured and laid out. | Cmn |

## Functions

### Modifier.layout

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/LayoutModifier.kt+function:layout)

```
fun Modifier.layout(measure: MeasureScope.(Measurable, Constraints) -> MeasureResult): Modifier
```

Creates a `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/LayoutModifier` that allows changing how the wrapped element is measured and laid out.

This is a convenience API of creating a custom `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/LayoutModifier` modifier, without having to create a class or an object that implements the `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/LayoutModifier` interface. The intrinsic measurements follow the default logic provided by the `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/LayoutModifier`.

Example usage:

```kotlin
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.layout.layout
import androidx.compose.ui.unit.offset

Box(
    Modifier.background(Color.Gray).layout { measurable, constraints ->
        // an example modifier that adds 50 pixels of vertical padding.
        val padding = 50
        val placeable = measurable.measure(constraints.offset(vertical = -padding))
        layout(placeable.width, placeable.height + padding) {
            placeable.placeRelative(0, padding)
        }
    }
) {
    Box(Modifier.fillMaxSize().background(Color.DarkGray))
}
```

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/LayoutModifier` |   |