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:

cxdzbl

Active Member
Licensed User
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:

    View attachment 18467

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

    View attachment 14357

  • 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):

    View attachment 21236

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

    View attachment 14361

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

    View attachment 21240
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.

Due to the important work made, I request a minimum donation amount of 25 euros.

To send the money, just click on the Donate button below (the amount to enter is in euros).

What you'll get:
- the main library and all the libraries required by the examples;
- a complete User's Guide;
- a detailed list of all functions, events and properties;
- a tutorial;
- 16 examples with a few useful and reusable classes.

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.

You can download here the list of all functions and properties, and the table of contents of the user's guide.

With my catalog, you can try all examples of this library.

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

Current version: 4.10

Bonus : the DataCollection library is available for free with UltimateListView.


WHEN DONATING, PLEASE INDICATE CLEARLY IN THE PAYPAL FORM THAT YOU DONATE FOR ULV TO AVOID ANY CONFUSION WITH MY OTHER LIBRARIES.
Prompt information for donation:
Some information is incorrect or missing. Please correct the content you have entered, and then try again.
Your credit card or debit card number is invalid or incomplete. Please check the content you have entered, and then try again.
‘----------------------
I checked, I enter the card number is correct.
What is the requirement of the input card number? A friend from China
 
Last edited:

Informatix

Expert
Licensed User
Longtime User
Prompt information for donation:
Some information is incorrect or missing. Please correct the content you have entered, and then try again.
Your credit card or debit card number is invalid or incomplete. Please check the content you have entered, and then try again.
‘----------------------
I checked, I enter the card number is correct.
What is the requirement of the input card number? A friend from China
Please see that with Paypal. I cannot do anything on my side.
 

cxdzbl

Active Member
Licensed User
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:

    View attachment 18467

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

    View attachment 14357

  • 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):

    View attachment 21236

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

    View attachment 14361

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

    View attachment 21240
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.

Due to the important work made, I request a minimum donation amount of 25 euros.

To send the money, just click on the Donate button below (the amount to enter is in euros).

What you'll get:
- the main library and all the libraries required by the examples;
- a complete User's Guide;
- a detailed list of all functions, events and properties;
- a tutorial;
- 16 examples with a few useful and reusable classes.

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.

You can download here the list of all functions and properties, and the table of contents of the user's guide.

With my catalog, you can try all examples of this library.

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

Current version: 4.10

Bonus : the DataCollection library is available for free with UltimateListView.


WHEN DONATING, PLEASE INDICATE CLEARLY IN THE PAYPAL FORM THAT YOU DONATE FOR ULV TO AVOID ANY CONFUSION WITH MY OTHER LIBRARIES.

Donated success today.
 

cxdzbl

Active Member
Licensed User
Please see that with Paypal. I cannot do anything on my side.

Today use your library's performance is very good, but I think a custom layout, as I upload the picture effect, format, and is only allowed to select up to 9 pictures, I this how to do, whether given code, thank you,I have modified your "ClsExplorerForULV" code, but I can't really do what I want to do,
 

Attachments

  • Screenshot_2016-04-04-02-25-01.png
    Screenshot_2016-04-04-02-25-01.png
    476.2 KB · Views: 250
Last edited:

Informatix

Expert
Licensed User
Longtime User
Today use your library's performance is very good, but I think a custom layout, as I upload the picture effect, format, and is only allowed to select up to 9 pictures, I this how to do, whether given code, thank you,I have modified your "ClsExplorerForULV" code, but I can't really do what I want to do,
Support is provided only by email.
And please send me a project to test.
 

Dave O

Well-Known Member
Licensed User
Longtime User
I've just converted another of my apps from clsChecklist to ULV, and the drag-and-drop is much nicer now.

One suggestion: When dragging an item within the list (internal), the item inserts itself into the list while I'm still dragging, which initially confused me. (I was trying to see which item I was on top of, and discovered it was the one I was dragging.) I think it may be clearer (and closer to other implementations I've used) if the target space was left blank during the drag (or perhaps an option for this, if it is indeed a personal-preference type of thing).

Cheers!
 

iz0ndg

Active Member
Licensed User
Longtime User
Hi Informatix,
First all thank you for all your Lib.
I donate today for your amazing ULV Lib.

Cheers!
 

vfafou

Well-Known Member
Licensed User
Longtime User
Hello Informatix!
I've just put my donation for your amazing ListView, that will save me a lot of work!

Thank you in advance!
 

Informatix

Expert
Licensed User
Longtime User
I've just converted another of my apps from clsChecklist to ULV, and the drag-and-drop is much nicer now.

One suggestion: When dragging an item within the list (internal), the item inserts itself into the list while I'm still dragging, which initially confused me. (I was trying to see which item I was on top of, and discovered it was the one I was dragging.) I think it may be clearer (and closer to other implementations I've used) if the target space was left blank during the drag (or perhaps an option for this, if it is indeed a personal-preference type of thing).

Cheers!
You have already a full control on what's displayed (look at "If DraggedID = ItemID Then" in the demo; set everything to blank if you want an empty item).
 

Dave O

Well-Known Member
Licensed User
Longtime User
Ah yes, I thought that only changed the appearance of the dragged item (on top), but it actually affects the dragged item in the list itself.

I added a masking panel of the same color as the item background, and made it visible in the ContentFiller event if it was the dragged panel. It's now easier to see where I'm dropping the panel.

Works great, thanks!
 

Informatix

Expert
Licensed User
Longtime User
Ah yes, I thought that only changed the appearance of the dragged item (on top), but it actually affects the dragged item in the list itself.

I added a masking panel of the same color as the item background, and made it visible in the ContentFiller event if it was the dragged panel. It's now easier to see where I'm dropping the panel.

Works great, thanks!
You can also set Visible to false for the contents.
 

ttsolution

Member
Licensed User
Longtime User
Hi Informatix,
I'm going to buy your Lib. I have tried your demo but I could not find the view that support to view,zoom, pinch picture by user fingers same as viber/facebook messenger does.

Thanks,

Jonh
 

Informatix

Expert
Licensed User
Longtime User
Hi Informatix,
I'm going to buy your Lib. I have tried your demo but I could not find the view that support to view,zoom, pinch picture by user fingers same as viber/facebook messenger does.

Thanks,

Jonh
I'm not sure that I understand because ULV is fundamentally a listview. So why should it include such a feature?
If you want that, you can use a dedicated view like TouchImageView.
 
Top