Oct 26, 2012 Replies: 1,067 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: It can mix different layouts (and they can be changed dynamically). You can use it as an expandable ListView: 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): It can scroll in both directions thanks to its swipe detector: The swipe detector can also be used to implement a swipe-to-dismiss or a swipe-to-reveal: You can easily add editors to your table to change its content: You can animate the items when they are added, removed, replaced or when the list is scrolled (with your own custom animation): It can stack items from the bottom: It supports drag & drop operations (internal & external): You can synchronize lists with different item heights: 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: May 4, 2021 Click to expand...
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: It can mix different layouts (and they can be changed dynamically). You can use it as an expandable ListView: 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): It can scroll in both directions thanks to its swipe detector: The swipe detector can also be used to implement a swipe-to-dismiss or a swipe-to-reveal: You can easily add editors to your table to change its content: You can animate the items when they are added, removed, replaced or when the list is scrolled (with your own custom animation): It can stack items from the bottom: It supports drag & drop operations (internal & external): You can synchronize lists with different item heights: 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:
C cmartins Member Licensed User Longtime User Jan 4, 2013 #61 informatix this is done! 25euros send to: [email protected]
Informatix Expert Licensed User Longtime User Jan 4, 2013 #62 aaronk said: Hello, If I use this 'UltimateListView' is it going to work with the AHQuickAction ? At the minute the AHQuickView is not displaying correctly when you press a label or button etc from a ScrollView (when you scroll down the list). So I am wondering if using the 'UltimateListView' is going help any? You can view my code on this page: http://www.b4x.com/forum/basic4andr...-ahquickaction-not-working-my-scrollview.html Any ideas how to get my sample working the way it is or am I better to use the 'UltimateListView' ? Click to expand... The problem will probably be the same with ULV. It's something in the AHQuickAction library that must be fixed. I'm sure that Corwin42 will find a solution for that since two of three quickactions menus are displayed at the right place. It seems it's just a location problem in the Show method.
aaronk said: Hello, If I use this 'UltimateListView' is it going to work with the AHQuickAction ? At the minute the AHQuickView is not displaying correctly when you press a label or button etc from a ScrollView (when you scroll down the list). So I am wondering if using the 'UltimateListView' is going help any? You can view my code on this page: http://www.b4x.com/forum/basic4andr...-ahquickaction-not-working-my-scrollview.html Any ideas how to get my sample working the way it is or am I better to use the 'UltimateListView' ? Click to expand... The problem will probably be the same with ULV. It's something in the AHQuickAction library that must be fixed. I'm sure that Corwin42 will find a solution for that since two of three quickactions menus are displayed at the right place. It seems it's just a location problem in the Show method.
I Inman Well-Known Member Licensed User Longtime User Jan 6, 2013 #63 Donated 25 Euros just now. Can't wait for your library!
Informatix Expert Licensed User Longtime User Jan 9, 2013 #64 New version 2.2 I just sent an email with a link to the new version. It fixes three issues, including the conflict with AHViewPager. If you use ULV inside an AHViewPager, the new function must be called this way, after Initialize: myULV.AsScrollView.DisableTouchEventInterception What's the problem? Both views try to detect a horizontal swipe gesture. Sometimes the first one to detect it is AHViewPager, sometimes it is ScrollView2D. When ScrollView2D is first, it says to AHViewPager "Hey, it's for me. It's my preciooooouuuusssss." The AHViewPager should answer: "No, it's miiiiiiine !" (without this detection, the AHVP doesn't behave properly) but because it is a bit too permissive, it abandons all touch events to SV2D. Last edited: Jan 9, 2013
New version 2.2 I just sent an email with a link to the new version. It fixes three issues, including the conflict with AHViewPager. If you use ULV inside an AHViewPager, the new function must be called this way, after Initialize: myULV.AsScrollView.DisableTouchEventInterception What's the problem? Both views try to detect a horizontal swipe gesture. Sometimes the first one to detect it is AHViewPager, sometimes it is ScrollView2D. When ScrollView2D is first, it says to AHViewPager "Hey, it's for me. It's my preciooooouuuusssss." The AHViewPager should answer: "No, it's miiiiiiine !" (without this detection, the AHVP doesn't behave properly) but because it is a bit too permissive, it abandons all touch events to SV2D.
Informatix Expert Licensed User Longtime User Jan 9, 2013 #65 When you click on a item view and you want to know the ID of the item, you can either store the item ID in the view Tag (in the Filler) or use the following code: Code: Copy Sub MyImgVw_Click Dim r As Reflector r.Target = Sender Dim p As Panel = r.RunMethod("getParent") Dim ID As Int = p.Tag End Sub
When you click on a item view and you want to know the ID of the item, you can either store the item ID in the view Tag (in the Filler) or use the following code: Code: Copy Sub MyImgVw_Click Dim r As Reflector r.Target = Sender Dim p As Panel = r.RunMethod("getParent") Dim ID As Int = p.Tag End Sub
aaronk Well-Known Member Licensed User Longtime User Jan 16, 2013 #66 Hello, I just sent you 25euros.. can you send this UltimateListView lib to me?
Informatix Expert Licensed User Longtime User Jan 16, 2013 #67 I receive automatically the Paypal notification for a purchase so it's not useful to post here or in my mailbox. Thanks
I receive automatically the Paypal notification for a purchase so it's not useful to post here or in my mailbox. Thanks
mrjaw Active Member Licensed User Longtime User Jan 16, 2013 #68 What is the price for this lib? How to buy it ?
Informatix Expert Licensed User Longtime User Jan 16, 2013 #69 It's written at the end of post #1: 25 euros (about 33 US dollars) Click on my Donate button and you'll be redirected to the Paypal site.
It's written at the end of post #1: 25 euros (about 33 US dollars) Click on my Donate button and you'll be redirected to the Paypal site.
aaronk Well-Known Member Licensed User Longtime User Jan 17, 2013 #70 I receive automatically the Paypal notification for a purchase so it's not useful to post here or in my mailbox. Thanks Click to expand... Thanks for sending it so quickly.
I receive automatically the Paypal notification for a purchase so it's not useful to post here or in my mailbox. Thanks Click to expand... Thanks for sending it so quickly.
Informatix Expert Licensed User Longtime User Jan 22, 2013 #71 Some of you have noticed this warning in the log: Warning: Panel.LoadLayout called with zero sized panel. This warning was added in the version 2.30 of B4A and has no useful meaning in ULV. You can ignore it.
Some of you have noticed this warning in the log: Warning: Panel.LoadLayout called with zero sized panel. This warning was added in the version 2.30 of B4A and has no useful meaning in ULV. You can ignore it.
Informatix Expert Licensed User Longtime User Jan 22, 2013 #72 Currently, LoadImageAsync cannot load directly an image from File.DirAssets (this folder is protected and cannot be accessed like other folders), but there is a simple solution to load your image with LoadImageAsync: use the custom loader feature. Define a custom loader with SetExecuteCallbacks and add it to your main code. Example: Code: Copy Sub Bmp_LoadDirAssets(Location As String, ID As String, ImageViewWidth As Int, ImageViewHeight As Int) As Object Return LoadBitmapSample(File.DirAssets, Location, ImageViewWidth, ImageViewHeight) End Sub Then load your image in the Filler with LoadImageAsync. The location parameter must begin with "custom:". Example: Code: Copy ULV.LoadImageAsync(ivState, "custom:ready.png", "ready")
Currently, LoadImageAsync cannot load directly an image from File.DirAssets (this folder is protected and cannot be accessed like other folders), but there is a simple solution to load your image with LoadImageAsync: use the custom loader feature. Define a custom loader with SetExecuteCallbacks and add it to your main code. Example: Code: Copy Sub Bmp_LoadDirAssets(Location As String, ID As String, ImageViewWidth As Int, ImageViewHeight As Int) As Object Return LoadBitmapSample(File.DirAssets, Location, ImageViewWidth, ImageViewHeight) End Sub Then load your image in the Filler with LoadImageAsync. The location parameter must begin with "custom:". Example: Code: Copy ULV.LoadImageAsync(ivState, "custom:ready.png", "ready")
alwaysbusy Expert Licensed User Longtime User Feb 27, 2013 #73 Donated! Just donated 25 Euros! Thanks for this library. Alwaysbusy Last edited: Feb 28, 2013
Informatix Expert Licensed User Longtime User Feb 27, 2013 #74 The version 3.2 is out ! I updated the examples on Google Drive. Now six examples can be downloaded.
padvou Active Member Licensed User Longtime User Mar 7, 2013 #75 I found the description of your work impressive! So i gladly added myself to the donors. I 'm sure I 'll be even more impressed when I start using ULV and the relevant libraries and classes. Merci bien!
I found the description of your work impressive! So i gladly added myself to the donors. I 'm sure I 'll be even more impressed when I start using ULV and the relevant libraries and classes. Merci bien!
Informatix Expert Licensed User Longtime User Mar 7, 2013 #76 padvou said: I found the description of your work impressive! So i gladly added myself to the donors. I 'm sure I 'll be even more impressed when I start using ULV and the relevant libraries and classes. Merci bien! Click to expand... Thanks, and don't hesitate to write here what you think of it after your first tries.
padvou said: I found the description of your work impressive! So i gladly added myself to the donors. I 'm sure I 'll be even more impressed when I start using ULV and the relevant libraries and classes. Merci bien! Click to expand... Thanks, and don't hesitate to write here what you think of it after your first tries.
Sinan Tuzcu Well-Known Member Licensed User Longtime User Mar 8, 2013 #77 Hello Informatix, how much is this library? can i change the graphics? and also change the line spacing? Can i the ballon grafik for short Word make smaller gruß sinan Last edited: Mar 8, 2013
Hello Informatix, how much is this library? can i change the graphics? and also change the line spacing? Can i the ballon grafik for short Word make smaller gruß sinan
Informatix Expert Licensed User Longtime User Mar 8, 2013 #78 Sinan Tuzcu said: Hello Informatix, how much is this library? can i change the graphics? and also change the line spacing? Can i the ballon grafik for short Word make smaller Click to expand... The fixed donation amount is 25 euros. The donation can be done by clicking on the donate button under my signature. Everything is customizable in UltimateListView. It is its core feature: you can display whatever you want in each item. You can have different heights, different layouts, and change all this in real-time. If you know how to create a layout with the designer then you are ready to create your items. The layout designs can be loaded with LoadLayout as usual (an item = a panel). UltimateListView is just a bit more complex than a B4A ListView. If you're comfortable with CustomListView or CheckList for example, you'll be comfortable with UltimateListView. As a last note, I have to warn every possible customer about an important thing: by purchasing the UltimateListView, you get a support by email and I try to do my best to help you and to answer quickly, but that's not a development service. So every request starting by "can you write for me a sample doing this and this" or "can you convert the lists in my app" gets always a negative answer. But don't worry: beginners will be taken by the hand until they get the expected result. Last edited: Mar 8, 2013
Sinan Tuzcu said: Hello Informatix, how much is this library? can i change the graphics? and also change the line spacing? Can i the ballon grafik for short Word make smaller Click to expand... The fixed donation amount is 25 euros. The donation can be done by clicking on the donate button under my signature. Everything is customizable in UltimateListView. It is its core feature: you can display whatever you want in each item. You can have different heights, different layouts, and change all this in real-time. If you know how to create a layout with the designer then you are ready to create your items. The layout designs can be loaded with LoadLayout as usual (an item = a panel). UltimateListView is just a bit more complex than a B4A ListView. If you're comfortable with CustomListView or CheckList for example, you'll be comfortable with UltimateListView. As a last note, I have to warn every possible customer about an important thing: by purchasing the UltimateListView, you get a support by email and I try to do my best to help you and to answer quickly, but that's not a development service. So every request starting by "can you write for me a sample doing this and this" or "can you convert the lists in my app" gets always a negative answer. But don't worry: beginners will be taken by the hand until they get the expected result.
padvou Active Member Licensed User Longtime User Mar 10, 2013 #79 Informatix said: Thanks, and don't hesitate to write here what you think of it after your first tries. Click to expand... Well... after my first tries and a great deal of outstanding support by informatix, I managed to integrate ULV in one of my production release projects, replacing deprecated solutions I've been using. I'm really impressed and I 'm just using 1% of ULV's potential. In other words, Great Job! Get it now!:icon_clap::icon_clap::icon_clap::icon_clap:
Informatix said: Thanks, and don't hesitate to write here what you think of it after your first tries. Click to expand... Well... after my first tries and a great deal of outstanding support by informatix, I managed to integrate ULV in one of my production release projects, replacing deprecated solutions I've been using. I'm really impressed and I 'm just using 1% of ULV's potential. In other words, Great Job! Get it now!:icon_clap::icon_clap::icon_clap::icon_clap:
Informatix Expert Licensed User Longtime User Mar 28, 2013 #80 Hack & spam An indian hacker (123.201.235.17) has accessed to one of my email boxes (despite a strong password) and grabbed all my email contacts. That means that all my donators are going to receive spams soon (the first wave has already been sent). I want to reassure everyone: I do not store sensitive information in this email box and Paypal does not provide me with sensitive informations about you. Don't click on the link in this spam (coming from a spanish/south-american name). That probably leads nowhere, it is just there to check if the address is valid and return this information to the hacker.
Hack & spam An indian hacker (123.201.235.17) has accessed to one of my email boxes (despite a strong password) and grabbed all my email contacts. That means that all my donators are going to receive spams soon (the first wave has already been sent). I want to reassure everyone: I do not store sensitive information in this email box and Paypal does not provide me with sensitive informations about you. Don't click on the link in this spam (coming from a spanish/south-american name). That probably leads nowhere, it is just there to check if the address is valid and return this information to the hacker.