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:

WizardOz

Member
Licensed User
Longtime User
Got this a few days ago, and I have to say: Beautiful library and great customer-service.
 

Informatix

Expert
Licensed User
Longtime User
Someone reported that UltimateListView does not work well with the AHSwipeToRefresh library. Indeed, AHSwipeToRefresh tries to intercept the touch events of the associated view to handle the swipe gesture and UltimateListView does the same with its internal ListView, so the result is a bit unpredictable when you mix both libraries. That being said, ULV does not need AHSwipeToRefresh (and its extra 650 Kb of code) as it can reproduce easily the same behavior with its native functions and events. An example is available on request.
 

shashkiranr

Active Member
Licensed User
Longtime User
Hi Fred,

I want to clear the ULV.GetSelectedIDs list. I am using
B4X:
ULV.GetSelectedIDs.Clear
but it is not working. Also i tried a workaround
B4X:
Sub deselect
    For i = 0 To ULV.GetSelectedIDs.Size-1
        If ULV.IsSelected(i) = True Then
        ULV.SetSelected(i, False)
        End If
    Next
End Sub

but this also fails in some scenarios.

Kindly let me know how to clear the ULV.GetSelectedIDs list.

Regards,
SK
 

Informatix

Expert
Licensed User
Longtime User
Support is supposed to be provided by email ONLY. ;)

As said in the User's Guide, GetSelectedID generates only a copy of the internal list, so altering this list does not change anything.
There's no function to clear all selections (it's a good suggestion for a future version). You have to browse all items and call SetSelected(False) for each selected item (if IsSelected...).
 

Informatix

Expert
Licensed User
Longtime User
Hey Informatix,

This Library can be add items in horizontal view? I need put some images (like COVERFLOW way) and control by touchpad in side of glass.

Coverflow not working, yeat, with google glass.

Thanks
ULV can display a horizontal sequence of images (as it can display almost everything) and allow horizontal scrolling, but there's no optimization in this case and you can experiment an Out of memory error like with a HorizontalScrollView. So I don't think that's a great choice for doing a horizontal image gallery. It would be interesting to know why the Coverflow lib does not work with the Google glasses.
 

Alberto Iglesias

Well-Known Member
Licensed User
Longtime User
I buyed your library, I think I have the version 3.99, is the last one?

Can you send to me one simple sample to put some images in horizontalscroll? just like coverflow?

The coverflow should be fine to do this, but when start the view in Google Glass, its freeze in images and I cant to do anything more, and another android works perfecly.
 

Informatix

Expert
Licensed User
Longtime User
No. The current version is 4.0. In december 2013, I sent an email to every donor but it seems that it ended in the spam folder of many of you. Please add my address in your white list or that will repeat again.
For your coverflow issue, maybe you could try my own version of the Coverflow library. It is not free but you can download an APK here to try.
 

nwhitfield

Active Member
Licensed User
Longtime User
Very impressed with this so far; a little tinkering yesterday afternoon and I've managed to change a couple of the memory hungry lists in one of my apps to use ULV, and it's behaving much better. And it was a lot simpler than I expected to change my code to work with it.
 

cosgab

New Member
Licensed User
Longtime User
Hi,

I just donated EUR 25, how can I get the Ultimate listview?
Thanks for you beautiful job.
Gabriele
 
Top