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:

Douglas Farias

Expert
Licensed User
Longtime User
the problem happens at my 2 moto g and moto x
Return BmpPlus.ReduceColors(SrcBmp) < here
but no problem, i go use without the images, i go use only file list
 

Informatix

Expert
Licensed User
Longtime User
the problem happens at my 2 moto g and moto x
Return BmpPlus.ReduceColors(SrcBmp) < here
but no problem, i go use without the images, i go use only file list
I have also a Moto G among my devices and I see no problem at all. Note that you give me each time a different line where the error happens and no steps to reproduce it so what can I think of it? So the case is closed until you provide me with a way to reproduce the issue.
 

imbault

Well-Known Member
Licensed User
Longtime 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 (about 33 US dollars).

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;
- 15 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.

15 examples (.APK) can be downloaded from Google Drive.

The UltimateListView does not work with Android versions < 2.

Frédéric Leneuf-Magaud

Hi Frédéric, do you think about porting your library on B4i?
Thx

Patrick
 

Dey

Active Member
Licensed User
Longtime User
The new version (4.02) is online. The filename, the link and the password do not change, but the contents is new.
This version requires Java 7 (check your Tools/Configure Paths/javac.exe).

Changelog:
- The state of the fast scroller is now properly recognized under Lollipop;
- I fixed a bug with layout names in some languages;
- I added the GetRelativeIndexForID function;
- I brought minor improvements to examples.

hello
I downloaded from the link, the version remains 4.01
my mistake anything?
greetings
 

Douglas Farias

Expert
Licensed User
Longtime User
hello
I downloaded from the link, the version remains 4.01
my mistake anything?
greetings

the name of the file is the same v4.01 but when you extract is v4.02
 

b4auser1

Well-Known Member
Licensed User
Longtime User
Hello, Informatix

It seems that ULV is not fully compatible with StdViewPager from StdActionBar :(
I created StdViewPager with a few panels. Each of the panels contains it's own instance of ULV.
When I drag a panel, the new panel arriving on the screen doesn't show (during the movement) the ULV with data, just solid white surface.
When I take a finger away, ULV with data appear on the screen.
As far As I understand, there is kind of event, which View on the StdViewPager panel must handle to show something during the movement.

Could you check and correct it ?
 

Informatix

Expert
Licensed User
Longtime User
Hello, Informatix

It seems that ULV is not fully compatible with StdViewPager from StdActionBar :(
I created StdViewPager with a few panels. Each of the panels contains it's own instance of ULV.
When I drag a panel, the new panel arriving on the screen doesn't show (during the movement) the ULV with data, just solid white surface.
When I take a finger away, ULV with data appear on the screen.
As far As I understand, there is kind of event, which View on the StdViewPager panel must handle to show something during the movement.

Could you check and correct it ?
I modified the Erel's example and I don't see any problem. Could you send me (by email) a project that shows the problem?
Theoretically, ULV should not exhibit an issue with Android standard libraries.
 

Attachments

  • ActionBar_ULV.zip
    12.6 KB · Views: 238

b4auser1

Well-Known Member
Licensed User
Longtime User
I modified the Erel's example and I don't see any problem. Could you send me (by email) a project that shows the problem?
Theoretically, ULV should not exhibit an issue with Android standard libraries.
Thank you. I will investigate the example you provide and compare with my project to find the difference.
 

wildfandango

Member
Licensed User
Longtime User
Hi Informatix...

Your Work looks very professional... i have made a donnation how can i download the lib?

thx!
 

LucaChinarello

New Member
Licensed User
Longtime User
Hi Informatix
excuse the automatic translation of google.
I just donated € 25 for ULV.
as we do to download the library?
Thanks in advance
 

asales

Expert
Licensed User
Longtime User
Hi @Informatix

How I can remove the borders (corner radius = 0) of cell panel?
Example: ULV_Filter_demo

Thanks in advance.
 

Attachments

  • SC20150112-013559.jpg
    SC20150112-013559.jpg
    36.8 KB · Views: 213

asales

Expert
Licensed User
Longtime User
??? The answer is in your question. Set the corner radius of cd to 0 instead of 6dip.
Thanks.
Is only to change dip of code:
B4X:
Dim cd As ColorDrawable
cd.Initialize(Colors.Blue, 0dip)
Very easy and I did not know how.
 

kamlo

New Member
Licensed User
Longtime User
Hi Informatix,
Just donate for ULV today.
Please support me for example to adjust layout size to fit webview content.
Thank you, And wait for other excellent work like this.

Best regards,
Kamol
 

jcesar

Active Member
Licensed User
Longtime User
Hi Informatix

I want share (facebook, twitter) a image showed in a image view, this image is download from a website. So im using a button with a popup menu in the ULV.

The popup menu is ok. The problem is retrieve a reference to the Imageview in the ClickedPanel in ULV. I´m using the tag property of button to store the ItemID but i dont know how can i access the ClickedPanel in ULV.
 
Top