Skip to content

Sample application demonstrating how to create a 2 way infinite scrolling TListView

Notifications You must be signed in to change notification settings

pimmie78/Delphi-InfiniteListViewScroll

Repository files navigation

Delphi-InfiniteListViewScroll

The following is a simple project built with Delphi Rio 10.3.2 FMX demonstrating how to create an infinitely scrolling TListView in both directions.

Please note that this example doesn't come with any warranty, support or liabilities and should be used for reference purposes only.

The code has been tested on Win32.

Description

The app uses the ScrollViewChange event to track when the user is scrolling and when they scroll to within the start or end of the current list, it either adds new items to the end or inserts into the start.

To keep the relative position of the list the same after inserting new items at the start of the list, we adjust the scroll position to be the current scroll position + the total height of the new items we've added.

Note: After adding items to the list, the internal scroll caches need to be updated within TListView before it will allow us to scroll to the correct new position. To do this, we explicitly call .Paint() on the list view which forces the recalculation of the caches.

To use this example, you will need to replace the code in GenerateItems() with your own code. This would ideally be converted into a TInfiniteListView component which I may do in future.

I hope this helps anyone else who needs to do this in Delphi.

About

Sample application demonstrating how to create a 2 way infinite scrolling TListView

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages