Jump to content
John van de Waeter

Listbox with images scrolls not smoothly

Recommended Posts

Hi All,

 

D12.1, both android and iOS, skia enabled.

 

I have this listbox with listitems. Every listitem contains an image and a couple of labels.

There are about 20 listitems. Each listitem has a height about half the height of the listbox.

 

When scrolling the listbox, the scrolling is not smooth. Well, the more faster the phone is, it's less notible.

It looks like every image (visible or not) is repainted during scrolling.

 

I also tried with a TVertScrollbox, but the effect is the same.

 

Any suggestions to make the scrolling more smoothly?

 

tia,

John

 

 

Share this post


Link to post

Out of the box FMX is lacking animation smoothness. As I understand there are some Embarcadero efforts on the way for animation improvements.  The initiative started from a community member. Don't hold your breath btw.

 

Today you need to tweak to get butter smooth experience: See Alcinoe GitHub - MagicFoundation/Alcinoe: Alcinoe Component Library For Delphi. Full opengl video player, WebRTC delphi wrapper, native ios/android TEdit, Improuved firemonkey controls, Firebase cloud messaging, Android/ios facebook sdk login, Json/Bson Parser, ImageMagick wrapper, MongoDb client And much more

 

There is also a Skia branch but that one is not offically released yet but it could be any day now. I think there seems to be an issue with video and Skia but I could be wrong.

Share this post


Link to post

@John van de Waeter The performance with Skia was improved on RAD Studio 12.2. Also, the property Form.Quality affects the performance when Skia is enabled.
Note: I recommend delete your project dcu output folder as it may contain old versions of Skia4Delphi from the open-source installation.

Share this post


Link to post

Thanks Vinícius

🙂

BTW I noticed that the OnPaint event of the image is fired continuously as the image is scrolled in the visible part of the Listbox. I would have thought that if the size of the image is unaltered, the showing bitmap should not need to be repainted, only moved. But I'm not an expert on this....

Edited by John van de Waeter
added btw

Share this post


Link to post

i'm having the same problem and is so anoying, i have a vertscrollbox that i populate with frames 
the more frames i have the worst it gets
one of the solutions i found was to set frame.visible:=false, when the frame is not showing on the scroll
the second was setting the image on each frame to visible:=false while scrolling
the second one brought a significative enhancement, but setting the image to visible false while scrolling is just dumb 

changing form.quality property didn't change too much
options systemDefault and highQuality were basically the same
while highPerformance make the scroll animation even worst

i really don't understand why this is like this since the list view component can scroll smothly, but infortunelly i had to change it since it was using too much memory and was crashing the application in low performance devices

i'll try to install alcione to see how it works

using delphi 12.1

Edited by NecoArc

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×