FlexConfig
Interface
Common
@ExperimentalFlexBoxApi
fun interface FlexConfig
Represents a configuration for a flex item within a FlexBox.
This configuration is defined via a lambda that operates on a FlexConfigScope. Because this
configuration block is executed during the layout phase rather than the composition phase,
reading state variables inside the block will only trigger a layout pass, completely avoiding
costly recompositions.
Configuration properties are applied sequentially. If a property (such as
grow or shrink) is assigned multiple times
within the configuration block, the final call takes precedence.
Functions
fun FlexConfigScope.configure()
Applies the configuration to the given FlexConfigScope.This method is invoked by the layout
system during the measurement phase, not during composition.
Code Examples
FlexConfigSample
@OptIn(ExperimentalFlexBoxApi::class)
@Composable
fun FlexConfigSample() {
// 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))
}
}