From 5603d7d9b000da980dd123032a9949936a32d7b9 Mon Sep 17 00:00:00 2001 From: Olivier Genez Date: Thu, 19 Oct 2023 22:32:22 +1100 Subject: [PATCH] Measure toolbar before calculating body's constraints Fixes issue #95. --- .../java/me/onebone/toolbar/CollapsingToolbarScaffold.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/src/main/java/me/onebone/toolbar/CollapsingToolbarScaffold.kt b/lib/src/main/java/me/onebone/toolbar/CollapsingToolbarScaffold.kt index afdf0cd..2f8d5a3 100644 --- a/lib/src/main/java/me/onebone/toolbar/CollapsingToolbarScaffold.kt +++ b/lib/src/main/java/me/onebone/toolbar/CollapsingToolbarScaffold.kt @@ -128,6 +128,10 @@ fun CollapsingToolbarScaffold( minWidth = 0, minHeight = 0 ) + // Measuring the toolbar updates toolbarState, which bodyConstraints depends on. Therefore + // the toolbar MUST be measured BEFORE bodyConstraints is computed. + val toolbarPlaceable = measurables[0].measure(toolbarConstraints) + val bodyConstraints = constraints.copy( minWidth = 0, minHeight = 0, @@ -139,9 +143,6 @@ fun CollapsingToolbarScaffold( constraints.maxHeight } ) - - val toolbarPlaceable = measurables[0].measure(toolbarConstraints) - val bodyMeasurables = measurables.subList(1, measurables.size) val childrenAlignments = bodyMeasurables.map { (it.parentData as? ScaffoldParentData)?.alignment