# MeasureResult

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/MeasureResult.kt+class:androidx.compose.ui.layout.MeasureResult) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Common/AllAndroid/JVM
- Cmn

  ```
  interface MeasureResult
  ```

*** ** * ** ***

Interface holding the size and alignment lines of the measured layout, as well as the children positioning logic. `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/MeasureResult#placeChildren()` is the function used for positioning children. `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/Placeable#placeAt(androidx.compose.ui.unit.IntOffset,kotlin.Float,kotlin.Function1)` should be called on children inside `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/MeasureResult#placeChildren()`. The alignment lines can be used by the parent layouts to decide layout, and can be queried using the `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/Measured#get(androidx.compose.ui.layout.AlignmentLine)` operator. Note that alignment lines will be inherited by parent layouts, such that indirect parents will be able to query them as well.

## Summary

| ### Public functions |
|---|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/MeasureResult#placeChildren()()` A method used to place children of this layout. | Cmn |

| ### Public properties |
|---|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-map/index.html<https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/AlignmentLine, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/MeasureResult#alignmentLines()` Alignment lines that can be used by parents to align this layout. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/MeasureResult#height()` The measured height of the layout, in pixels. | Cmn |
| `open ((https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/Ruler) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)?` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/MeasureResult#isRulerProvided()` Works in conjunction with `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/MeasureResult#rulerProvider()` to `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/RulerScope#(androidx.compose.ui.layout.Ruler).provides(kotlin.Float)` Ruler values individually. | Cmn |
| `open (https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/RulerScope.(https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/Ruler) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/MeasureResult#rulerProvider()` A lambda that can `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/RulerScope#(androidx.compose.ui.layout.Ruler).provides(kotlin.Float)` `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/Ruler` values. | Cmn |
| `open (https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/RulerScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/MeasureResult#rulers()` An optional lambda function used to create `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/Ruler`s for child layout. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/MeasureResult#width()` The measured width of the layout, in pixels. | Cmn |

## Public functions

### placeChildren

Cmn Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun placeChildren(): Unit
```

A method used to place children of this layout. It may also be used to measure children that were not needed for determining the size of this layout.

## Public properties

### alignmentLines

Cmn Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
val alignmentLines: Map<AlignmentLine, Int>
```

Alignment lines that can be used by parents to align this layout. This only includes the alignment lines of this layout and not children.

### height

Cmn Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
val height: Int
```

The measured height of the layout, in pixels.

### isRulerProvided

Cmn Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.12.0)

```
open val isRulerProvided: ((Ruler) -> Boolean)?
```

Works in conjunction with `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/MeasureResult#rulerProvider()` to `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/RulerScope#(androidx.compose.ui.layout.Ruler).provides(kotlin.Float)` Ruler values individually. A return value of `true` indicates that `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/MeasureResult#rulerProvider()` might be able to provide a value for the passed-in `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/Ruler`. A value of `false` means it can never provide the value.

### rulerProvider

Cmn Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.12.0)

```
open val rulerProvider: (RulerScope.(Ruler) -> Unit)?
```

A lambda that can `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/RulerScope#(androidx.compose.ui.layout.Ruler).provides(kotlin.Float)` `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/Ruler` values. When `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/MeasureResult#isRulerProvided()` returns `true` for a `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/Ruler`, `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/MeasureResult#rulerProvider()` will be called to provide its value. `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/MeasureResult#rulerProvider()` can choose not to provide the value if it isn't available. It can also provide more `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/Ruler` values if it is convenient to provide them. For example, it may be convenient to provide all values for a `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/RectRulers` when one is provided.

### rulers

Cmn Added in [1.7.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.7.0)

```
open val rulers: (RulerScope.() -> Unit)?
```

An optional lambda function used to create `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/Ruler`s for child layout. This may be reevealuated when the layout's position moves.

### width

Cmn Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
val width: Int
```

The measured width of the layout, in pixels.