Comments (12)
Sure, I updated the code to make the problem more visible.
And here is the video:
IMG_0012.MP4
Set the speed to 0.5 to see that the drawn elements (yellow boxes) are not aligned to the list items when scrolling.
from compose-multiplatform.
It will definitely be in 1.7, possibly earlier in 1.6.11. You can also see it in our dev builds, which we release every few days.
from compose-multiplatform.
when scrolling, the position of the drawn icons (circles) is unstable relative to the items in the LazyColumn.
Looks like it's only on the top/bottom elements during overscrolling?
Screen.Recording.2024-05-03.at.16.32.01.mov
@elijah-semyonov, listState.layoutInfo.visibleItemsInfo
doesn't take into account the overscroll effect.
from compose-multiplatform.
@igordmn No, the problem with the overscroll effect is a separate issue that also doesn't work on Android (there is a feature request that might help fix this).
This issue is about drawings done in DrawModifierNode
not being synced with the scroll position of LazyColumn
when scrolled in any position (with the overscroll effect disabled).
I also noticed that this actually works fine on the simulator - so there is no such problem in your video.
I can only reproduce the bug on a real device (iPhone 12 iOS 17.4.1).
from compose-multiplatform.
I can only reproduce the bug on a real device
Could you post a video with scrolling in the middle? In the video you posted it is difficult to distinguish the desync because of overscoll and the desync because of other reasons
from compose-multiplatform.
@elijah-semyonov,
listState.layoutInfo.visibleItemsInfo
doesn't take into account the overscroll effect.
@igordmn
That makes sense. Overscroll effect on iOS is based on applying Modifier.offset
to the scroll content and tracks its own state, it doesn't know anything about the implementation of the particular scroll it's integrated with (whether it's a TextField scroll
, .scrollable
or LazyList
.
Native iOS works with negative (or above the max value) scrolls. Such values are breaking common
logic invariants, so supporting it in the same way as native iOS does it would be extremely intrusive.
The lag looks interesting though, did we include main-loop sequence fix in beta03?
from compose-multiplatform.
The lag looks interesting though, did we include JetBrains/compose-multiplatform-core#1260 in beta03?
Yes, it is included
from compose-multiplatform.
Possibly fixed by JetBrains/compose-multiplatform-core#1356; worth trying.
from compose-multiplatform.
@m-sasha it's indeed fixed by that fix.
RPReplay_Final1715848901.MP4
from compose-multiplatform.
Could you check the one with the yellow squares too? It's much more visible there.
from compose-multiplatform.
Sure! It's not present there either:
RPReplay_Final1715932651.MP4
from compose-multiplatform.
Nice, what version will the fix come in?
from compose-multiplatform.
Related Issues (20)
- Build failed when building native macOS app after added compose resources. HOT 1
- Encountered error after upgrading from 1.6.10-beta01 to 1.6.10-rc01 HOT 4
- Cannot boot for Desktop after upgrade to 1.6.10* HOT 4
- When will proguard be upgraded to 7.4? It seems that it cannot support jdk 21 now. HOT 2
- iOS - Scroll does not work at all when touch starts on a UIKitView inside eg a LazyColumn HOT 9
- Link issue on iOS (undefined symbol _OBJC_CLASS_$_UITextLoupeSession) with 1.6.10-rc03 HOT 1
- Request for ability to opt-out of resource tasks added in latest compose plugin (1.6.10-rc03) HOT 2
- Request for opting out of generating skiko wasm / js resources in latest compose plugin (1.6.10-rc03)
- Material3 Icon and Text vertical alignment is abnormal. HOT 1
- Support 1Password Universal Autofill on Mac
- RuntimeError: illegal cast for wasmJs with SparseArrayCompat.internalGet
- Android Composables not transformed by compiler in 1.6.10 HOT 5
- 1.6.10-rc03 version error HOT 3
- 1.6.10: MPP with JS but without WASM target: Cannot determine the version of Skiko for Compose '1.6.10 HOT 5
- Compose for Desktop doesn't emit lifecycle events, only states HOT 4
- [Web/Wasm] TextField not opening keyboard in mobile browser HOT 1
- String resource mapping web 1.6.10-rc03
- Change position of MenuBar HOT 2
- Compose Desktop IDE Plugin doesn't show when using Jetbrains Preview annotation HOT 1
- ImageViewer example: Android application crash due to missing Android Manifest FileProvider HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from compose-multiplatform.