FlexConfig represents a configuration for a flex item within a FlexBox.

FlexConfig is implemented as a functional interface where the lambda is executed on FlexConfigScope during the layout phase.

Note: Configuration properties are not additive. If a property is assigned multiple times within the configuration block, the last assignment overrides previous values.

Example:

import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.FlexAlignSelf
import androidx.compose.foundation.layout.FlexBox
import androidx.compose.foundation.layout.FlexConfig
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp

// Define reusable FlexConfig - can be a top-level constant
val FlexibleCentered = FlexConfig {
    grow(1f)
    shrink(0f)
    basis(100.dp)
    alignSelf(FlexAlignSelf.Center)
}

FlexBox(modifier = Modifier.fillMaxWidth().height(100.dp)) {
    Box(Modifier.background(Color.Blue).flex(FlexibleCentered))
}

Summary

Public functions

Unit

Configures the flex item properties.

Cmn

Public functions

fun FlexConfigScope.configure(): Unit

Configures the flex item properties. Called during the layout phase, not during composition.