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:

Smee

Well-Known Member
Licensed User
Longtime User
Wow, just played around with some of the examples and this is a fantastic library. Well done and thank you

Now for something i have in mind i would like to be able to expand or "drop down" a column in a row. Similar to the gallery example in the first post. Is there some demo code for this anywhere? Also is it possible to add a button or check box to a column? I did not see anything like this in the code examples or am i just not seeing it.

Once again thanks for the library, EVERYONE should have this if they want to save themselves hours of coding

EDIT:

Ooops i have found the Gallery example, i will check that out first
 
Last edited:

Jerez

Active Member
Licensed User
Longtime User
Hello. I would buy the library. What is the minimum version of Android which can be implemented?
 

Jerez

Active Member
Licensed User
Longtime User
The UltimateListView does not work with Android versions < 2.
Thanks. You know if its possible to replicate an UI like this with ULV?

 

Jerez

Active Member
Licensed User
Longtime User
Parts of it are possible but this UI is so involved it requires some custom implementations.
You would need to break it down into components.

Looks like a ScrollView in cross... using the KEYCODE_DPAD_LEFT, KEYCODE_DPAD_RIGHT to navigate through List and highlight the current selection also move the list to right or left to center the selection...

Can the ULV highlight an item or navigate with keys? (i need to develop an app for smart tv)
 

Informatix

Expert
Licensed User
Longtime User
Looks like a ScrollView in cross... using the KEYCODE_DPAD_LEFT, KEYCODE_DPAD_RIGHT to navigate through List and highlight the current selection also move the list to right or left to center the selection...

Can the ULV highlight an item or navigate with keys? (i need to develop an app for smart tv)
ULV is mainly a vertical list view. It is not the best solution for horizontal lists. You should look at the Coverflow library or the MultiType SlidingPanels class.
 

Jerez

Active Member
Licensed User
Longtime User
You can replicate easily the floating action button with ULV and NineOldAndroids. See the attached example.
I will try it, thanks man!
 

Jerez

Active Member
Licensed User
Longtime User
Hi, i sent you 25 today! thanks!
 

asales

Expert
Licensed User
Longtime User
How I can capture a click in a item of the "ULV_Variable_Demo" example (ULV with variable size)?

I tried this code, but don't worked:
B4X:
Sub ULV_ItemClick(ItemID As Long, Position As Int, ClickedPanel As Panel)
    dbCursor.Position = Position
    ToastMessageShow(dbCursor.GetString("Text"),False)
End Sub
 

Informatix

Expert
Licensed User
Longtime User
How I can capture a click in a item of the "ULV_Variable_Demo" example (ULV with variable size)?

I tried this code, but don't worked:
B4X:
Sub ULV_ItemClick(ItemID As Long, Position As Int, ClickedPanel As Panel)
    dbCursor.Position = Position
    ToastMessageShow(dbCursor.GetString("Text"),False)
End Sub
Please ask your questions by email.
Set IsSelectable to true in AddLayout.
 

Informatix

Expert
Licensed User
Longtime User
I'm used to run various versions of B4A in a sandbox so I can try your projects with the same version (or a close one) as yours. As B4A v5 uses .NET v4 and, because of this, does not run properly in a sandbox, I have to make B4A v5 my main development version. Unfortunately, a few changes in this version make it unsuitable for my needs and I prefer to stay with v4.30. This means that I may be unable to run your projects created with the last version (however I already saw that some projects run with just a warning). I hope that you will understand.
 
Top