From 3d5bf056c331c5dce3926e1111ecff018e08d445 Mon Sep 17 00:00:00 2001 From: Jordan Demeulenaere Date: Mon, 10 Jul 2023 15:41:25 +0200 Subject: Fix child constraints in (Horizontal|Vertical)Grid Bug: 290184746 Test: Manual. Wrote a demo with multiple grids in http://aosp/2635217 Change-Id: I2d67f43a53e76a7053473fce327c5f82a14f2c75 --- .../core/src/com/android/compose/grid/Grids.kt | 23 +++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/packages/SystemUI/compose/core/src/com/android/compose/grid/Grids.kt b/packages/SystemUI/compose/core/src/com/android/compose/grid/Grids.kt index 5224c51bb7c3..27f0948d5377 100644 --- a/packages/SystemUI/compose/core/src/com/android/compose/grid/Grids.kt +++ b/packages/SystemUI/compose/core/src/com/android/compose/grid/Grids.kt @@ -22,7 +22,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.layout.Layout import androidx.compose.ui.unit.Constraints import androidx.compose.ui.unit.Dp -import androidx.compose.ui.unit.constrainWidth import androidx.compose.ui.unit.dp import kotlin.math.ceil import kotlin.math.max @@ -126,18 +125,20 @@ private fun Grid( ((columns - 1) * horizontalSpacing.toPx()).roundToInt() val totalVerticalSpacingBetweenChildren = ((rows - 1) * verticalSpacing.toPx()).roundToInt() val childConstraints = - Constraints().apply { - if (constraints.maxWidth != Constraints.Infinity) { - constrainWidth( + Constraints( + maxWidth = + if (constraints.maxWidth != Constraints.Infinity) { (constraints.maxWidth - totalHorizontalSpacingBetweenChildren) / columns - ) - } - if (constraints.maxHeight != Constraints.Infinity) { - constrainWidth( + } else { + Constraints.Infinity + }, + maxHeight = + if (constraints.maxHeight != Constraints.Infinity) { (constraints.maxHeight - totalVerticalSpacingBetweenChildren) / rows - ) - } - } + } else { + Constraints.Infinity + } + ) val placeables = buildList { for (cellIndex in measurables.indices) { -- cgit v1.2.3-59-g8ed1b