Used to specify the arrangement of the layout's children in layouts like Row or Column in the main axis direction (horizontal and vertical, respectively).

Below is an illustration of different horizontal arrangements in Rows: ![Row

  • arrangements](https://developer.android.com/images/reference/androidx/compose/foundation/layout/row_arrangement_visualization.gif)

Different vertical arrangements in Columns: ![Column

  • arrangements](https://developer.android.com/images/reference/androidx/compose/foundation/layout/column_arrangement_visualization.gif)

Summary

Nested types

Used to specify the horizontal arrangement of the layout's children in layouts like Row.

Used to specify the horizontal arrangement of the layout's children in horizontal layouts like Row, or the vertical arrangement of the layout's children in vertical layouts like Column.

Used to specify the vertical arrangement of the layout's children in layouts like Column.

Public functions

Arrangement.Horizontal

Place children horizontally one next to the other and align the obtained group according to an alignment.

Cmn
Arrangement.Vertical

Place children vertically one next to the other and align the obtained group according to an alignment.

Cmn
Arrangement.HorizontalOrVertical
spacedBy(space: Dp)

Place children such that each two adjacent ones are spaced by a fixed space distance across the main axis.

Cmn
Arrangement.Horizontal
spacedBy(space: Dp, alignment: Alignment.Horizontal)

Place children horizontally such that each two adjacent ones are spaced by a fixed space distance.

Cmn
Arrangement.Vertical
spacedBy(space: Dp, alignment: Alignment.Vertical)

Place children vertically such that each two adjacent ones are spaced by a fixed space distance.

Cmn

Public properties

Arrangement.Vertical

Place children vertically such that they are as close as possible to the bottom of the main axis.

Cmn
Arrangement.HorizontalOrVertical

Place children such that they are as close as possible to the middle of the main axis.

Cmn
Arrangement.Horizontal

Place children horizontally such that they are as close as possible to the end of the main axis.

Cmn
Arrangement.HorizontalOrVertical

Place children such that they are spaced evenly across the main axis, including free space before the first child and after the last child, but half the amount of space existing otherwise between two consecutive children.

Cmn
Arrangement.HorizontalOrVertical

Place children such that they are spaced evenly across the main axis, without free space before the first child or after the last child.

Cmn
Arrangement.HorizontalOrVertical

Place children such that they are spaced evenly across the main axis, including free space before the first child and after the last child.

Cmn
Arrangement.Horizontal

Place children horizontally such that they are as close as possible to the beginning of the horizontal axis (left if the layout direction is LTR, right otherwise).

Cmn
Arrangement.Vertical

Place children vertically such that they are as close as possible to the top of the main axis.

Cmn

Public functions

aligned

fun aligned(alignment: Alignment.Horizontal): Arrangement.Horizontal

Place children horizontally one next to the other and align the obtained group according to an alignment.

Parameters
alignment: Alignment.Horizontal

The alignment of the children inside the parent.

aligned

fun aligned(alignment: Alignment.Vertical): Arrangement.Vertical

Place children vertically one next to the other and align the obtained group according to an alignment.

Parameters
alignment: Alignment.Vertical

The alignment of the children inside the parent.

spacedBy

fun spacedBy(space: Dp): Arrangement.HorizontalOrVertical

Place children such that each two adjacent ones are spaced by a fixed space distance across the main axis. The spacing will be subtracted from the available space that the children can occupy. The space can be negative, in which case children will overlap.

To change alignment of the spaced children horizontally or vertically, use spacedBy overloads with alignment parameter.

Parameters
space: Dp

The space between adjacent children.

spacedBy

fun spacedBy(space: Dp, alignment: Alignment.Horizontal): Arrangement.Horizontal

Place children horizontally such that each two adjacent ones are spaced by a fixed space distance. The spacing will be subtracted from the available width that the children can occupy. An alignment can be specified to align the spaced children horizontally inside the parent, in case there is empty width remaining. The space can be negative, in which case children will overlap.

Parameters
space: Dp

The space between adjacent children.

alignment: Alignment.Horizontal

The alignment of the spaced children inside the parent.

spacedBy

fun spacedBy(space: Dp, alignment: Alignment.Vertical): Arrangement.Vertical

Place children vertically such that each two adjacent ones are spaced by a fixed space distance. The spacing will be subtracted from the available height that the children can occupy. An alignment can be specified to align the spaced children vertically inside the parent, in case there is empty height remaining. The space can be negative, in which case children will overlap.

Parameters
space: Dp

The space between adjacent children.

alignment: Alignment.Vertical

The alignment of the spaced children inside the parent.

Public properties

Bottom

val BottomArrangement.Vertical

Place children vertically such that they are as close as possible to the bottom of the main axis. Visually: (top) ####123 (bottom)

Center

val CenterArrangement.HorizontalOrVertical

Place children such that they are as close as possible to the middle of the main axis. Visually: ##123## for LTR and ##321## for RTL.

End

val EndArrangement.Horizontal

Place children horizontally such that they are as close as possible to the end of the main axis. Visually: ####123 for LTR and 321#### for RTL.

SpaceAround

val SpaceAroundArrangement.HorizontalOrVertical

Place children such that they are spaced evenly across the main axis, including free space before the first child and after the last child, but half the amount of space existing otherwise between two consecutive children. Visually: #1##2##3# for LTR and #3##2##1# for RTL

SpaceBetween

val SpaceBetweenArrangement.HorizontalOrVertical

Place children such that they are spaced evenly across the main axis, without free space before the first child or after the last child. Visually: 1##2##3 for LTR or 3##2##1 for RTL.

SpaceEvenly

val SpaceEvenlyArrangement.HorizontalOrVertical

Place children such that they are spaced evenly across the main axis, including free space before the first child and after the last child. Visually: #1#2#3# for LTR and #3#2#1# for RTL.

Start

val StartArrangement.Horizontal

Place children horizontally such that they are as close as possible to the beginning of the horizontal axis (left if the layout direction is LTR, right otherwise). Visually: 123#### for LTR and ####321.

Top

val TopArrangement.Vertical

Place children vertically such that they are as close as possible to the top of the main axis. Visually: (top) 123#### (bottom)