# FlexBasis

Artifact: [androidx.compose.foundation:foundation-layout](https://developer.android.com/jetpack/androidx/releases/compose-foundation) [View Source](https://cs.android.com/search?q=file:androidx/compose/foundation/layout/FlexBox.kt+class:androidx.compose.foundation.layout.FlexBasis) Added in [1.11.0](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.11.0) Common/AllAndroid/JVM
- Cmn

  ```
  value class FlexBasis
  ```

*** ** * ** ***

Defines the initial main size of a flex item before free space distribution.

- `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/FlexBasis#Auto()`: Uses the item's explicitly set size, or falls back to its natural content size.

- `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/FlexBasis#Dp(androidx.compose.ui.unit.Dp)`: Uses a fixed exact size in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp`.

- `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/FlexBasis#Percent(kotlin.Float)`: Uses a fraction of the container's main axis size.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/FlexConfigScope#basis(androidx.compose.foundation.layout.FlexBasis)` |   |

## Summary

| ### Public companion functions |
|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/FlexBasis` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/FlexBasis#Dp(androidx.compose.ui.unit.Dp)(value: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp)` Use a fixed size in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` as the basis. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/FlexBasis` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/FlexBasis#Percent(kotlin.Float)(value: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0, to = 1.0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html)` Use a fraction of the container's main axis size as the basis. | Cmn |

| ### Public companion properties |
|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/FlexBasis` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/FlexBasis#Auto()` Use the item's maximum intrinsic size as the basis. | Cmn |

| ### Public functions |
|---|---|---|
| `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/FlexBasis#toString()()` | Cmn |

## Public companion functions

### Dp

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

```
fun Dp(value: Dp): FlexBasis
```

Use a fixed size in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` as the basis.

```kotlin
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.FlexBasis
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

val FixedBasis = FlexConfig { basis(FlexBasis.Dp(100.dp)) }
// Or use the shorthand
val FixedBasisShorthand = FlexConfig { basis(100.dp) }

FlexBox(modifier = Modifier.fillMaxWidth()) {
    Box(Modifier.height(50.dp).background(Color.Blue).flex(FixedBasis))
    Box(Modifier.height(50.dp).background(Color.Green).flex(FixedBasisShorthand))
}
```

| Parameters |
|---|---|
| `value: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` | The basis size in Dp. |

### Percent

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

```
fun Percent(value: @FloatRange(from = 0.0, to = 1.0) Float): FlexBasis
```

Use a fraction of the container's main axis size as the basis.

```kotlin
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.FlexBasis
import androidx.compose.foundation.layout.FlexBox
import androidx.compose.foundation.layout.FlexConfig
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.width
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp

val HalfWidth = FlexConfig { basis(FlexBasis.Percent(0.5f)) }
// Or use the shorthand
val HalfWidthShorthand = FlexConfig { basis(0.5f) }

FlexBox(modifier = Modifier.width(400.dp)) {
    Box(Modifier.height(50.dp).background(Color.Blue).flex(HalfWidth))
    Box(Modifier.height(50.dp).background(Color.Green).flex(HalfWidthShorthand))
}
```

| Parameters |
|---|---|
| `value: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0, to = 1.0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | A value between 0.0 and 1.0 representing the percentage. |

## Public companion properties

### Auto

Cmn

```
val Auto: FlexBasis
```

Use the item's maximum intrinsic size as the basis.

If the item has an explicitly set size modifier along the main axis (for example, `Modifier.width` in a `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/FlexDirection#Row()`), that exact size will be used as the basis. Otherwise, it falls back to measuring the item's preferred natural content size without constraints.

This is the default value.

## Public functions

### toString

Cmn

```
open fun toString(): String
```