commit | 66a6622fb1ae57dec2392b80b81888ec3e5645f7 | [log] [tgz] |
---|---|---|
author | Conrad Chen <[email protected]> | Wed Oct 18 02:22:34 2023 +0000 |
committer | Gerrit Code Review <[email protected]> | Wed Oct 18 02:22:34 2023 +0000 |
tree | 45d014ffc284f34fdd872781126e85324aeca9dd | |
parent | c9d13d352a702ac3ef95c1333b5ae61a297891d7 [diff] | |
parent | d133b691148d5e8973608e842d48075d3bdfef5b [diff] |
Merge "Fix unspecified preferred width" into androidx-main
diff --git a/compose/material3/material3-adaptive/src/commonMain/kotlin/androidx/compose/material3/adaptive/PaneScaffold.kt b/compose/material3/material3-adaptive/src/commonMain/kotlin/androidx/compose/material3/adaptive/PaneScaffold.kt index 6832d50..77310445 100644 --- a/compose/material3/material3-adaptive/src/commonMain/kotlin/androidx/compose/material3/adaptive/PaneScaffold.kt +++ b/compose/material3/material3-adaptive/src/commonMain/kotlin/androidx/compose/material3/adaptive/PaneScaffold.kt
@@ -31,8 +31,10 @@ @ExperimentalMaterial3AdaptiveApi interface PaneScaffoldScope { /** - * Specify the preferred width of the pane. The relevant pane scaffold implementations are - * supposed to respect the preferred width of a pane whenever it's possible. + * This modifier specifies the preferred width for a pane, and the pane scaffold implementation + * will respect this width whenever possible. In case the modifier is not set or set to + * [Dp.Unspecified], the default preferred widths of the respective scaffold implementation will + * be used. */ fun Modifier.preferredWidth(width: Dp): Modifier }
diff --git a/compose/material3/material3-adaptive/src/commonMain/kotlin/androidx/compose/material3/adaptive/ThreePaneScaffold.kt b/compose/material3/material3-adaptive/src/commonMain/kotlin/androidx/compose/material3/adaptive/ThreePaneScaffold.kt index 180d323..d4b5036 100644 --- a/compose/material3/material3-adaptive/src/commonMain/kotlin/androidx/compose/material3/adaptive/ThreePaneScaffold.kt +++ b/compose/material3/material3-adaptive/src/commonMain/kotlin/androidx/compose/material3/adaptive/ThreePaneScaffold.kt
@@ -712,11 +712,10 @@ ) : Measurable by measurable { private val data = ((parentData as? PaneScaffoldParentData) ?: PaneScaffoldParentData()) - // TODO(conradchen): Handle the case of a low priority pane with no preferred with - var measuredWidth = when (data.preferredWidth) { - null -> defaultPreferredWidth - Float.NaN -> 0 - else -> data.preferredWidth!!.toInt() + var measuredWidth = if (data.preferredWidth == null || data.preferredWidth!!.isNaN()) { + defaultPreferredWidth + } else { + data.preferredWidth!!.toInt() } }