Fixed
Status Update
Comments
je...@google.com <je...@google.com>
mo...@google.com <mo...@google.com>
ap...@google.com <ap...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-main
Author: George Mount <
Link:
Fix intrinsic sizing for required sizes
Expand for full commit details
Fix intrinsic sizing for required sizes
Fixes: 368113212
Relnote: "Fixed the requiredWidth/Height/Size modifiers to
properly handle intrinsic sizes."
Previously, the width or height was used without adjustment
when passing the value to the child to measure. This CL
now will adjust the size to correspond to the fixed size
if 'required' is used.
Test: new tests. Manual test with broken use case.
Change-Id: Ie3d7dbd737fa3162a58feca8a596134a4baf201d
Files:
- M
compose/foundation/foundation-layout/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/layout/SizeTest.kt
- M
compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/Size.kt
Hash: df20b2d7004570830021768367f91e44e382a1a5
Date: Tue Dec 10 09:46:01 2024
fr...@gmail.com <fr...@gmail.com> #3
Hooray!
pr...@google.com <pr...@google.com> #4
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.compose.foundation:foundation-layout:1.8.0-alpha08
androidx.compose.foundation:foundation-layout-android:1.8.0-alpha08
androidx.compose.foundation:foundation-layout-jvmstubs:1.8.0-alpha08
androidx.compose.foundation:foundation-layout-linuxx64stubs:1.8.0-alpha08
Description
Jetpack Compose version: BOM 2024.05.00
Jetpack Compose component(s) used: Image
Android Studio Build: Jellyfish | 2023.3.1 Patch 2 #AI-233.14808.21.2331.11926650, built on June 4, 2024
Kotlin version: 1.9.23
My goal here is to have the colored box on the left match the height of the text, and for the image to be centered in the box.
However, I've discovered that applying a minWidth to the box causes it to gain height as if the image were being scaled to the box's minWidth. I'm not 100% sure, but it looks like the image's
requiredWidth
modifier isn't being accounted for in the intrinsic calculations when the image is a direct child of a Box. Wrapping the image in a Row fixes it, as does removing thedefaultMinSize
modifier on the Box. As you can see in the attached screenshot, it's the Box that has the extra height instead of the image, so that leads me to believe that the Image's intrinsics aren't working how I would expect. If I replace the Image with a Spacer, it also works correctly.I've attached a screenshot of the problem, as well as the image I used in my demo.
Component Summary:
Code: