← Compose Multiplatform Component in Compose Foundation Layout
FlowRow
Common
[FlowRow] is a layout that fills items from left to right (ltr) in LTR layouts or right to left (rtl) in RTL layouts and when it runs out of space, moves to the next "row" or "line" positioned on the bottom, and then continues filling items until the items run out.
Last updated:
Installation
dependencies {
implementation("androidx.compose.foundation:foundation-layout:1.7.0-beta04")
}
Overloads
@ExperimentalLayoutApi
@Composable
fun FlowRow(
modifier: Modifier = Modifier,
horizontalArrangement: Arrangement.Horizontal = Arrangement.Start,
verticalArrangement: Arrangement.Vertical = Arrangement.Top,
maxItemsInEachRow: Int = Int.MAX_VALUE,
maxLines: Int = Int.MAX_VALUE,
overflow: FlowRowOverflow = FlowRowOverflow.Clip,
content: @Composable FlowRowScope.() -> Unit
)
Parameters
name | description |
---|---|
modifier | The modifier to be applied to the Row. |
horizontalArrangement | The horizontal arrangement of the layout's children. |
verticalArrangement | The vertical arrangement of the layout's virtual rows. |
maxItemsInEachRow | The maximum number of items per row |
maxLines | The max number of rows |
overflow | The strategy to handle overflowing items |
content | The content as a [RowScope] |
Code Example
SimpleFlowRow
@Composable
@Sampled
@OptIn(ExperimentalLayoutApi::class
fun SimpleFlowRow() {
Text(modifier = Modifier
.fillMaxWidth(1f)
.padding(20.dp)
.wrapContentHeight(align = Alignment.Top),
text = "Flow Row with weights",
fontWeight = FontWeight.Bold
)
FlowRow(
Modifier
.fillMaxWidth(1f)
.padding(20.dp)
.wrapContentHeight(align = Alignment.Top),
horizontalArrangement = Arrangement.spacedBy(10.dp),
verticalArrangement = Arrangement.spacedBy(20.dp),
maxItemsInEachRow = 3,
) {
repeat(20) {
Box(
Modifier
.align(Alignment.CenterVertically)
.width(50.dp)
.height(50.dp)
.weight(1f, true)
.background(Color.Green)
) {
Text(text = it.toString(), fontSize = 18.sp, modifier = Modifier.padding(3.dp))
}
}
}
}