Status Update
Comments
pa...@google.com <pa...@google.com> #2
Hi,
I also see my text cut off when I set maxLines = 2
. Is it the same issue?
Box(
modifier =
Modifier.size(
width = 108dp,
height = 34dp,
),
contentAlignment = Alignment.Center,
) {
BasicText(
text = "text text text",
maxLines = 2,
autoSize = AutoSize.StepBased(minFontSize = 1.sp, maxFontSize = 13.sp, stepSize = 0.2.sp),
)
}
mv...@google.com <mv...@google.com> #3
Project: platform/frameworks/support
Branch: androidx-main
Author: Jossi Wolf <
Link:
Fix TextAutoSize bug with maxLines = 1
Expand for full commit details
Fix TextAutoSize bug with maxLines = 1
We were overcaching the paragraphIntrinsics in MultiParagraphLayoutCache when mutating the style. For `AutoSizeStepBased` instances with biased windows (more values smaller/bigger than the optimal), this could result in performing layout with outdated intrinsics, and thus an outdated style and font size, without surfacing this in the TextLayoutResult.
Test: New MultiParagraphLayoutCacheTests and manual testing
Relnote: Fixed a bug in BasicText with TextAutoSize and maxLines set to 1.
Fixes: 376834366
Change-Id: Ic0450c763c5d764492995b44ee1fe570246a9689
Files:
- M
compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/text/modifiers/MultiParagraphLayoutCacheTest.kt
- M
compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/modifiers/MultiParagraphLayoutCache.kt
Hash: e1b712d78cc60384ed67a56c006148291ba146a6
Date: Tue Jan 07 18:52:26 2025
ph...@monzo.com <ph...@monzo.com> #4
#2, yeah, that's the same issue.
pa...@google.com <pa...@google.com>
je...@google.com <je...@google.com> #5
Thanks @jo...@google.com for fixing this! Do you know when the fix would be available for g3 apps?
ap...@google.com <ap...@google.com> #6
Moving the internal discussion offline. The bug is fixed and the fix available in snapshot builds. We will comment on this issue when the bug fix is included in a release.
ap...@google.com <ap...@google.com> #7
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.compose.foundation:foundation:1.8.0-beta01
androidx.compose.foundation:foundation-android:1.8.0-beta01
androidx.compose.foundation:foundation-jvmstubs:1.8.0-beta01
androidx.compose.foundation:foundation-linuxx64stubs:1.8.0-beta01
je...@google.com <je...@google.com>
al...@mercari.com <al...@mercari.com> #9
Which Compose version has this been fixed?
je...@google.com <je...@google.com> #10
performScrollToNode(matcher: SemanticsMatcher)
was added in 1.1.0-alpha06
Note that by "fixed" I mean there is a solution, which is to use performScrollToNode(matcher: SemanticsMatcher)
on the lazy list instead of performScrollTo()
on the destination node.
oh...@mozilla.com <oh...@mozilla.com> #11
We use the compose version 1.1.1 and while trying to scroll on a lazy list with performScrollToNode [ rule.onNode(hasScrollAction()).performScrollToNode(hasText(language)) ], I get this error:
java.lang.IllegalArgumentException: Failed requirement.
at androidx.compose.ui.node.MeasureAndLayoutDelegate.measureAndLayout(MeasureAndLayoutDelegate.kt:190)
at androidx.compose.ui.platform.AndroidComposeView.measureAndLayout(AndroidComposeView.android.kt:662)
at androidx.compose.ui.node.Owner$DefaultImpls.measureAndLayout$default(Owner.kt:182)
at androidx.compose.ui.node.LayoutNode.forceRemeasure(LayoutNode.kt:1339)
at androidx.compose.foundation.lazy.layout.LazyLayoutState.remeasure(LazyLayoutState.kt:54)
at androidx.compose.foundation.lazy.LazyListState.snapToItemIndexInternal$foundation_release(LazyListState.kt:202)
at androidx.compose.foundation.lazy.LazyListState$scrollToItem$2.invokeSuspend(LazyListState.kt:194)
at androidx.compose.foundation.lazy.LazyListState$scrollToItem$2.invoke(Unknown Source:8)
at androidx.compose.foundation.lazy.LazyListState$scrollToItem$2.invoke(Unknown Source:4)
The only way it worked was by replacing scrollToItem(index) with animateScrollToItem(index) in the production code.
ma...@gmail.com <ma...@gmail.com> #12
I had a similar error. My issue was solved when I found out that I called scrollToItem
in from the IO dispatcher by accident, giving this same error.
Description
Compose
1.0.0-alpha11
doesn't support scrolling in tests in Lazy components (i.e.LazyColumn
andLazyRow
).SemanticsNodeInteraction.performScrollTo
fails to scroll to composables that hasn't been already composed.