commit | 46df9907128cffc5d20dfb9e86d9771f773e2705 | [log] [tgz] |
---|---|---|
author | Kevin Most | Wed May 07 18:09:09 2025 -0400 |
committer | Kevin Most | Wed May 07 18:09:09 2025 -0400 |
tree | ff22ae7907b257486d8c0db57c957097bba7944d | |
parent | 8f90388cd32dfba552d5c35f479996071cb97525 [diff] |
XR Material3: Fix crash when ThreePaneScaffold has no measurable children Test: Unit tests pass Fixes: 414635402 Change-Id: I0fde7d2c0d8e6a124693d82c302a01a0c2af7f7f
diff --git a/xr/compose/material3/material3/src/main/java/androidx/xr/compose/material3/ThreePaneScaffold.kt b/xr/compose/material3/material3/src/main/java/androidx/xr/compose/material3/ThreePaneScaffold.kt index 38843fa..b20cc18 100644 --- a/xr/compose/material3/material3/src/main/java/androidx/xr/compose/material3/ThreePaneScaffold.kt +++ b/xr/compose/material3/material3/src/main/java/androidx/xr/compose/material3/ThreePaneScaffold.kt
@@ -129,7 +129,13 @@ SpatialPanel(SubspaceModifier.width(defaultPreferredWidth).fillMaxHeight()) { Layout(content) { measurables, constraints -> - val measurable = measurables[0] + val measurable = measurables.getOrNull(0) + if (measurable == null) { + return@Layout layout( + defaultPreferredWidth.toPx().roundToInt(), + constraints.maxHeight + ) {} + } val parentData = measurable.parentData as? PaneScaffoldParentData val widthFloat = parentData?.preferredWidth ?: defaultPreferredWidth val width = widthFloat.toPx().roundToInt()