B4A Library [Lib] UltimateListView

I've been working on this project for a long time and I'm very proud to release the version 4 today.

The UltimateListView is, as its pompous name says, THE ListView.

  • It can handle very long lists. This is a screenshot of a list with 245813 items, all different:

    verylonglist.jpg


  • It can mix different layouts (and they can be changed dynamically). You can use it as an expandable ListView:

    layouts.jpg


  • It has a low memory footprint and is very fast (this report comes from the Performance demo where the list has to display 128901 distinct words read from a database and the used device is a Huawei Honor single core 1.4 Ghz):

    performance.png


  • It can scroll in both directions thanks to its swipe detector:

    tables.jpg


  • The swipe detector can also be used to implement a swipe-to-dismiss or a swipe-to-reveal:

    swipedetector.png
  • You can easily add editors to your table to change its content:

    celledit.jpg


  • You can animate the items when they are added, removed, replaced or when the list is scrolled (with your own custom animation):

    animationclap.png


  • It can stack items from the bottom:

    stackfrombottom.png


  • It supports drag & drop operations (internal & external):

    dragndrop.png


  • You can synchronize lists with different item heights:

    grid.jpg
The examples will show you how to implement a Pull-to-Refresh, create sticky headers or combine several lists to make a wheel. One of the examples is an improved version of my File Explorer class.

All texts and images can be loaded asynchronously (from Internet, from a database or from a local folder), so you can scroll even if the data are not fully loaded.

The list has its own state manager.

Since September 2018, ULV is available for free. You can still donate for it if you wish.
To send the money, just click on the Donate button below (the amount to enter is in euros):


Note that UltimateListView is not a wrapper around the work of someone else. It is 100% my own code and it is based upon the standard Java ListView of Android.

The UltimateListView does not work with Android versions < 2. It cannot work with B4J or B4i.

Current version: 4.50

DOWNLOAD HERE:
 
Last edited:

MarcoRome

Expert
Licensed User
Longtime User
There's a new version available. It requires B4A v5.80.

Changelog:
- UltimateListView can be added as a custom view in the designer;
- I fixed a minor bug in ClsExplorerForULV.bas;
- I added a "assets:" tag to LoadImageAsync to load images from the assets;
- I added the DeleteAllStateFiles function;
- I added the Parent property;
- I added the SynchronizePositionWith function and a demo that shows its usefulness;
- I added 12 new styles for SetStyle (still using system drawables);
- I udpated the manifest of examples and fixed a few style issues.

Hi Fred and thank you for your great library.
Last link that i have i see 4.10 but in #691 i read "I plan to release the version 5 of ULV this week".
is it 4.10 or 5 ?
Thank you
Marco
 

incendio

Well-Known Member
Licensed User
Longtime User
I got an error when tried to run example Synchro_demo :

res\values-v20\theme.xml:3:error:Error retrieving parent for item:No resource found that matches the given name @android:style/Theme.Material

B4A 5.80, tried on Genymotion with Android ver 5.0
 

Anser

Well-Known Member
Licensed User
Longtime User
I got an error when tried to run example Synchro_demo :

res\values-v20\theme.xml:3:error:Error retrieving parent for item:No resource found that matches the given name @android:style/Theme.Material

B4A 5.80, tried on Genymotion with Android ver 5.0
It worked for me without any errors
B4A 5.80, Genymotion with Android 4.4.4
Haven't checked with Android 5.0
 

incendio

Well-Known Member
Licensed User
Longtime User
You need to use a more recent version of android.jar (Tools - Configure Paths).
It is point to this folder
C:\Program Files\adt-bundle-windows-x86_64-20131030\sdk\platforms\android-19\android.jar

What is the more recent version of android.jar?
 

incendio

Well-Known Member
Licensed User
Longtime User
You have to use at least Android 20 to compile. This is not related to the minimum SDK of your app. It's just needed to compile without errors due to the material styles introduced in ULV 4.10.
I have updated android.jar to ver 23, it works OK now, thanks.
 

b4auser1

Well-Known Member
Licensed User
Longtime User
If I put button views on CellPanel in the ULV, how I can intercept click events from the these Buttons ?
 

wizard699

Active Member
Licensed User
Longtime User
I've the same problem ... my button in ULV have Tag property .... but how can I intercept click on the specific button item?
 
Top