Status Update
Comments
so...@google.com <so...@google.com>
si...@google.com <si...@google.com> #2
I don't think there is any workaround available so I recommend for everyone affected to stay on beta06 for a bit.
so...@google.com <so...@google.com> #3
Take this with a huge grain of salt but I had the same/similar issue occasionally on beta06
and before as well. It got a lot worse with beta07
. Just scrolling and randomly finding items that are not rendered whatsoever. I'm developing deeply nested dynamic forms so I could be hitting multiple edge cases or perhaps made a mistake myself but I don't have these issues with a verticalScroll
modifier on a regular column.
st...@google.com <st...@google.com> #4
uj...@navi.com <uj...@navi.com> #5
Found a temporary workaround
Instead of your current:
LazyColumn {
items(myList) {
MyItem(it)
}
}
Do
LazyColumn {
itemsIndexed(myList) { index, it ->
key(index) { // TODO remove key() after upgrade to beta08
MyItem(it)
}
}
}
ja...@gmail.com <ja...@gmail.com> #6
Branch: androidx-main
commit a3b566102eb60c3396dfae0dd5ea57e8eb15f0a1
Author: Andrey Kulikov <andreykulikov@google.com>
Date: Thu May 20 20:57:53 2021
Fix for LazyColumn/Row items displayed partially after the scroll
It was the old issue with how we handle not placed children which became often reproducible after introducing slots reuse in LazyColumn. When the layout was not placing its children node remeasuring and redrawing for such node and its children was skipped as this node is not visible. Once this node was becoming visible again we weren't correctly restoring the node's sub-hierarchy. Now we correctly reschedule remeasurings and redrawings for the dirty nodes for the whole subtree.
Relnote: Fixed the bug introduced in beta07 where LazyColumn/Row items were displayed partially after the scroll
Test: InvalidatingNotPlacedChildTest
Bug: 188566058
Change-Id: I8c9ac2df59f3183bf6067dd20092a127f16c9e80
M compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/draw/InvalidatingNotPlacedChildTest.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/LayoutNode.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/LayoutNodeWrapper.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/LayoutTreeConsistencyChecker.kt
lp...@gmail.com <lp...@gmail.com> #7
In case you want to try it earlier you can try the snapshot build. buildId is 7393783. See this site with instructions:
Thanks everyone!
ar...@gmail.com <ar...@gmail.com> #8
bm...@fieldwire.com <bm...@fieldwire.com> #9
Compose generally releases every two weeks on Wednesday. That puts the next release on Jun 2.
en...@gmail.com <en...@gmail.com> #10
Still radio silent? :)
og...@gmail.com <og...@gmail.com> #11
sh...@gmail.com <sh...@gmail.com> #12
Is this feature now available in compose 1.7.0-beta07
so...@google.com <so...@google.com>
ap...@google.com <ap...@google.com> #13
Branch: androidx-main
commit 6ade2353efa495a1f05bae8fbc2de2c4b5cba2e7
Author: Anastasia Soboleva <soboleva@google.com>
Date: Tue Aug 13 18:28:35 2024
Add ellipsis start and middle
Relnote: "TextOverflow.StartEllipsis and TextOverflow.MiddleEllipsis are now available which allows to place ellipsis at the start or middle of the line of the single line text"
Test: new demo
Test: c:ui:ui-text:cC
Bug: 185418980
Change-Id: I389132c71774d5c13afce85a8719af697431cef9
M compose/foundation/foundation/integration-tests/foundation-demos/src/main/java/androidx/compose/foundation/demos/text/ComposeText.kt
M compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/text/input/internal/CursorAnchorInfoBuilderTest.kt
M compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/text/input/internal/LegacyCursorAnchorInfoBuilderTest.kt
M compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/text/input/internal/LegacyTextInputMethodRequestCursorAnchorInfoTest.kt
M compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/text/modifiers/MultiParagraphLayoutCacheTest.kt
M compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/text/modifiers/ParagraphLayoutCacheTest.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/TextDelegate.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/modifiers/LayoutUtils.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/modifiers/MinLinesConstrainer.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/modifiers/MultiParagraphLayoutCache.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/modifiers/ParagraphLayoutCache.kt
M compose/ui/ui-text/api/current.ignore
M compose/ui/ui-text/api/current.txt
M compose/ui/ui-text/api/restricted_current.ignore
M compose/ui/ui-text/api/restricted_current.txt
M compose/ui/ui-text/benchmark/src/androidTest/java/androidx/compose/ui/text/benchmark/NonLinearFontScalingBenchmark.kt
M compose/ui/ui-text/benchmark/src/androidTest/java/androidx/compose/ui/text/benchmark/ParagraphBenchmark.kt
M compose/ui/ui-text/benchmark/src/androidTest/java/androidx/compose/ui/text/benchmark/ParagraphMethodBenchmark.kt
M compose/ui/ui-text/benchmark/src/androidTest/java/androidx/compose/ui/text/benchmark/ParagraphWithLineHeightBenchmark.kt
M compose/ui/ui-text/src/androidInstrumentedTest/kotlin/androidx/compose/ui/text/AndroidParagraphTest.kt
M compose/ui/ui-text/src/androidInstrumentedTest/kotlin/androidx/compose/ui/text/MultiParagraphFillBoundingBoxesTest.kt
M compose/ui/ui-text/src/androidInstrumentedTest/kotlin/androidx/compose/ui/text/MultiParagraphGetRangeForRectTest.kt
M compose/ui/ui-text/src/androidInstrumentedTest/kotlin/androidx/compose/ui/text/MultiParagraphIntegrationTest.kt
M compose/ui/ui-text/src/androidInstrumentedTest/kotlin/androidx/compose/ui/text/MultiParagraphIntegrationTextDirectionTest.kt
M compose/ui/ui-text/src/androidInstrumentedTest/kotlin/androidx/compose/ui/text/ParagraphFillBoundingBoxesTest.kt
M compose/ui/ui-text/src/androidInstrumentedTest/kotlin/androidx/compose/ui/text/ParagraphIntegrationBoundingBoxTest.kt
M compose/ui/ui-text/src/androidInstrumentedTest/kotlin/androidx/compose/ui/text/ParagraphIntegrationIndentationFixTest.kt
M compose/ui/ui-text/src/androidInstrumentedTest/kotlin/androidx/compose/ui/text/ParagraphIntegrationLineHeightStyleTest.kt
M compose/ui/ui-text/src/androidInstrumentedTest/kotlin/androidx/compose/ui/text/ParagraphIntegrationTest.kt
M compose/ui/ui-text/src/androidInstrumentedTest/kotlin/androidx/compose/ui/text/ParagraphIntegrationTextDirectionTest.kt
M compose/ui/ui-text/src/androidInstrumentedTest/kotlin/androidx/compose/ui/text/ParagraphPlaceholderIntegrationTest.kt
M compose/ui/ui-text/src/androidInstrumentedTest/kotlin/androidx/compose/ui/text/TextMeasurerTest.kt
M compose/ui/ui-text/src/androidInstrumentedTest/kotlin/androidx/compose/ui/text/platform/AndroidParagraphGetRangeForRectTest.kt
M compose/ui/ui-text/src/androidInstrumentedTest/kotlin/androidx/compose/ui/text/style/TextLineBreaker.kt
M compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/AndroidParagraph.android.kt
M compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/android/TextLayout.android.kt
M compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/platform/ActualParagraph.android.kt
M compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/MultiParagraph.kt
M compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/Paragraph.kt
M compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/TextMeasurer.kt
M compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/platform/PlatformParagraph.kt
M compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/style/TextOverflow.kt
M compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/platform/SkiaParagraph.commonStubs.kt
so...@google.com <so...@google.com> #14
Marking as resolved. Please note that this feature will only be available in the 1.8.0-alpha02 release.
na...@google.com <na...@google.com> #15
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.compose.foundation:foundation:1.8.0-alpha02
androidx.compose.foundation:foundation-android:1.8.0-alpha02
androidx.compose.foundation:foundation-jvmstubs:1.8.0-alpha02
androidx.compose.foundation:foundation-linuxx64stubs:1.8.0-alpha02
androidx.compose.ui:ui-text-linuxx64stubs:1.8.0-alpha02
Description
Current version Jetpack Compose supports only 1 type of ellipsize: documentation , Android supports other types of ellipsize like: marquee, middle, and start.
TextOverflow.Ellipsis
which behaves like Android'sandroid:ellipsize="end"
. As per theAs a user of Compose I would like to be able to pick the same type of ellipsize behavior as I can using Android View system.
Note that marquee in Compose is a separate API that is available as
Modifier.basicMarquee()