---
title: "calculateThreePaneScaffoldValue"
description: "Calculates the current adapted value of [ThreePaneScaffold] according to the given
[maxHorizontalPartitions], [adaptStrategies] and [currentDestination]. The returned value can be
used as a unique representation of the current layout structure.

The function will treat the current destination as the highest priority and then adapt the rest
panes according to the order of [ThreePaneScaffoldRole.Primary],
[ThreePaneScaffoldRole.Secondary] and [ThreePaneScaffoldRole.Tertiary]. If there
are still remaining partitions to put the pane, the pane will be set as
[PaneAdaptedValue.Expanded], otherwise it will be adapted according to its associated
[AdaptStrategy]."
type: "function"
---

<div class='type'>Function</div>


<a id='references'></a>
<div class='sourceset sourceset-common'>Common</div>


```kotlin
@ExperimentalMaterial3AdaptiveApi
fun calculateThreePaneScaffoldValue(
    maxHorizontalPartitions: Int,
    adaptStrategies: ThreePaneScaffoldAdaptStrategies,
    currentDestination: ThreePaneScaffoldDestinationItem<*>?,
): ThreePaneScaffoldValue
```


Calculates the current adapted value of `ThreePaneScaffold` according to the given
`maxHorizontalPartitions`, `adaptStrategies` and `currentDestination`. The returned value can be
used as a unique representation of the current layout structure.

The function will treat the current destination as the highest priority and then adapt the rest
panes according to the order of `ThreePaneScaffoldRole.Primary`,
`ThreePaneScaffoldRole.Secondary` and `ThreePaneScaffoldRole.Tertiary`. If there
are still remaining partitions to put the pane, the pane will be set as
`PaneAdaptedValue.Expanded`, otherwise it will be adapted according to its associated
`AdaptStrategy`.

#### Parameters

| | |
| --- | --- |
| maxHorizontalPartitions | The maximum allowed partitions along the horizontal axis, i.e.,      how many expanded panes can be shown at the same time. |
| adaptStrategies | The adapt strategies of each pane role that `ThreePaneScaffold` supports,      the default value will be `ThreePaneScaffoldDefaults.threePaneScaffoldAdaptStrategies`. |
| currentDestination | The current destination item, which will be treated as having      the highest priority, can be `null`. |




<div class='sourceset sourceset-common'>Common</div>


```kotlin
@ExperimentalMaterial3AdaptiveApi
fun calculateThreePaneScaffoldValue(
    maxHorizontalPartitions: Int,
    adaptStrategies: ThreePaneScaffoldAdaptStrategies,
    destinationHistory: List<ThreePaneScaffoldDestinationItem<*>>,
): ThreePaneScaffoldValue
```


Calculates the current adapted value of `ThreePaneScaffold` according to the given
`maxHorizontalPartitions`, `adaptStrategies` and `destinationHistory`. The returned value can be
used as a unique representation of the current layout structure.

The function will treat the current focus as the highest priority and then adapt the rest
panes according to the order of `ThreePaneScaffoldRole.Primary`,
`ThreePaneScaffoldRole.Secondary` and `ThreePaneScaffoldRole.Tertiary`. If there are still
remaining partitions to put the pane, the pane will be set as `PaneAdaptedValue.Expanded`,
otherwise it will be adapted according to its associated `AdaptStrategy`.

#### Parameters

| | |
| --- | --- |
| maxHorizontalPartitions | The maximum allowed partitions along the horizontal axis, i.e.,      how many expanded panes can be shown at the same time. |
| adaptStrategies | The adapt strategies of each pane role that `ThreePaneScaffold` supports,      the default value will be `ThreePaneScaffoldDefaults.threePaneScaffoldAdaptStrategies`. |
| destinationHistory | The history of past destination items. The last destination will have      the highest priority, and the second last destination will have the second highest      priority, and so forth until all panes have a priority assigned. Note that the last      destination is supposed to be the last item of the provided list. |




