[PAID] Schema ListView - Render Large Lists with Any Design

Schema List View

This extension helps you to create list view of any type of design with schema very easily. This extension uses recycler view library that allows you to larger no of lists smoothly without any lag.

Features of this extension:

  • Inbuilt Recycler View.
  • Inbuild Image Loader to load heavy images from URLs.
  • Supports schema and template.
  • No separate component creation required.
  • Inbuilt Search Function.
  • Inbuilt Click Listener.
  • 20+ Item Animation.
  • 64+ scroll animations.
  • Supports Grid View.
  • Smooth Scrolling.

All Blocks

Orientations and Layout manager


Scrolling Animations

Item Animators



Let’s see a quick documentation of all the blocks.


This event raises when any error is occurred

error text


This event is triggered when the list is scrolled, you must fill/update the data to your component here with respect to the index.

parent any
index number


This event raises when any component is clicked, returns the index, id and the component. You must enable the click listener for the component for this event.

index number
component component
id text


This event raises when any component is long clicked, returns the index, id and the component. You must enable the click listener for the component for this event.

index number
component component
id text


This event raises when list is scrolled

x number
y number


This event raises when list is scrolled fully and reaches to the top end

offset number


This event raises when list is scrolled fully and reaches to the bottom end

offset number


This event raises when search block updates lists with the given keyword, this will return all the list that you used in Configure block. You must update your data list in order to show new data. Returns the all lists in a single list.

sortedList list
search text
total number


This block initializes the list view in the given container with given configuration

in component
type number
orientation number
reverseLayout boolean
schema text
clickListeners list
animation text
total number


Set the total no. of the item for list view

total number


Call refresh for all items in the list view


Refreshes the list view for a given range

start number
end number


Returns the component with given id from the given parent object

returnType : any

parent any
id text


Set the given property of given component

component any
propertyName text
value text


Set the given properties of given component

component any
properties dictionary


Load the image to given image or arrangement from given url

component component
url text
loadingImage text
errorImage text


Register your all lists in a single list here, these lists will be used to search string and find result.

lists list


This block searches the given string in the registered lists, make sure you have configured the lists before.

search text


If you want to show original lists again or clear the search then use this block.


This block updates the item of given index, make sure to update the data in your list

index number


This blocks insert a new item to given index, make sure to add the data in your list

index number


This blocks moves to items of given indices, make sure you update the data in your list

fromPosition number
toPosition number


This block removes the item of given index, make sure to remove the data in your respective lists.

index number


This block scroll to the given index

index number
smooth boolean


This block scrolls the list to the bottom end

smooth boolean


This block scrolls the list to the top end

smooth boolean


Returns the index of first visible item of the list view

returnType : number


Returns the index of last visible item of the list view

returnType : number


Returns the horizontal offset

returnType : number


Returns the vertical offset

returnType : number


Set the recycler list view item animator, Note: Item Animator and Animation parameter of Initialize block is different. ItemAnimator only plays animation on add/remove items.


Set the animation duration, this is not for item animator. Make sure to set this property before Initializing else it won’t work.


Set true if you want the animation to be played all time on scrolling list.


Set the no. of columns for grid list view, make sure to set this before initializing the list view.

Documentation generated with Getaix

How to Use

Let’s see a quick usage of the extension. (Usage blocks are of Kodular).

Generate Schema

Since this extension works on schema template principle, here is how you can generate or create template.


There are two schema generators available that you can use to generate your schema.

Guide is also published here:

  1. Create the design that you want to use, after creating it export your AIA.


    Note: Use only those components which are required.

  2. Upload to the generator and enter the screen and author name.


  3. Now click on generate button and you will get your schema.

Method-2(Only for AI2):

  1. Create the design that you want to use, after creating it just select the main/parent component like this.


    Now press Ctrl + C

  2. Go to block section and take a text block and press Ctrl + V.


    You can now use this string template in this extension to proceed.


Let’s play with blocks now.


Before initializing, configure your properties like animation etc.


Here is a list of names that I will use to render data on the list.


Now initialize the list view with template, animations etc.

in : Horizontal/Vertical Arrangement, this will not work with scroll arrangement.
type : Linear/Grid
orientation : Horizontal/Vertical
reverseLayout : pass true if you want to use reverse layout i.e last item of the list will be shown first.
schema : JSON template of your design.
clickListeners: You can enable the clicks on your component directly from here, pass the ids of all the components in a list on which you want to enable the click.
animation : Set scrolling animation
total : Set the total amount of list that you want to show.


Here, you have to fill your data in the components. For example, I am using a simple list view that has a label which shows usernames, so now I will use this event SetValues to set the user names on the label from my above list. Use GetComponent to get the component from the id. You can also perform other tasks here.


This extension provides you direct event to get click on the component, you just need to enable the clicks on Initialize block. This event returns you the id, component and index of the item which is clicked.

So this was the basic usage of the extension for rendering a simple data list.


Set the textbox empty or search empty string and your original data will be return by OnSearch event to reset the list again, it’s like closing search bar.

Add Item


Use NotifyItemInserted to add a new item at any position, just make sure to add the item in your list. Just handle your list and leave the rest to extension


ezgif.com-resize (1)

Remove Item


Use NotifyItemRemoved to remove an item at any position, just make sure to remove the same item from your list.



Move Item


Use NotifyItemMoved to move an item from any position to any new position, just make sure to update your data list accordinly.



Search Feature

This extension provides the search function that allows you to implement search feature very easily. Let’s see how to use it.


For implementing search, first you have to use ConfigureSearch block to register the lists that you want to use for searching strings. This block accepts a list of multiple lists. For example, if you have data like name, surname, address. And you want to search a string in all of these list then just give these lists to this block.


I have created a search bar to get input of the search.
Now track the textbox text and use Search block to search the string, this block will search the given string in the lists that were used to registered by ConfigreLists block.


Once the search is done, OnSearch event will be triggered with the new data, you must update your data list here to show the user new data. sortedList return a list of lists as the search operation were performed in multiple lists(that were registered), so I have used here select list item block to update my original list. This will update and show the new data to users.




IMG_sbtgbn ezgif.com-video-to-gif

ezgif.com-gif-maker (1)


For India :- ₹499
Outside India :- 7$

How to buy :
You can buy this extension from AI2 Store
Deep Link for AI2 Store : Click here


Thanks @Shreyash for the super power full Rush .
Thanks @ashishlambat5 for helping in testing.

Thank you
Sumit​ :wink:


What is the difference with your Recycler View extension? Will it perform better?

1 Like

A great work again from you :heart::heart::heart:

Yes, because of the schema, extension has more control over your design layout, and it manages the layout structure in best possible way which increases the performance little bit.

Main Differences:

  • You don’t need many blocks to create list in this extension and it’s far easy to implement this extension.
  • This extension does not require any other extension to work.
  • Inbuilt image loader and search function.
  • Support AI2 schema template.

Also, recycler view extension can be used with any type of dynamic component extension, it can work with inbuilt dynamic components, and all other extensions that are available.

This is really nice extension, If you are beginner or pro developer you can use this extension. If you have to use recycle list in your project so you can create with minium blocks. & Main things is (Search options) you can set search function with single block…


Nice extension. Good job :clap:

One question, as you are using schema template and when working with large number of list items with images, does the scroll works smoothly? Because i see in Dreamers Recycler view extension, the scrolling behaviour changes when used images in it.

They need to be handled properly like using image loader etc. This extension has more control over your layout, and it tries to manage the scrolling experience in best possible way. Use light images as image placeholders.


help me, I tried but it didn’t work. :pray:

Please explain your issue. What have you tried? Please post details here in order to get help.

First of all, your extension is very usefull. God Job!!! So, I have some problems: How can I replace text property of a label “A” within a parent component when pressing a label “B” (clickable), both components are on the same parent. Is a block necessary to obtain the properties of the components or can it be done in some other way?

Hi, it looks like I forgot to give a “parent” parameter to ItemClicked event, I will be pushing an update today then you would be able to do it.



Your blocks should be like this:



recently purchased this extension. showing this error . can you help me. what i mistake in this


Capitalize the first letter (Text) in the Property Name parameter

1 Like

same error is showing component cannot be null

i think error in this area

This error is generated when you use wrong ID to get component or to set clicks, make sure a component with ID text and HorizontalArrangement exists.

Also use correct property name :

1 Like

That is not the component ID, the name of the component = ID of the component.
So, in your case:

Lable1 and Horizontal_Arrangement is the ID.

then how can i use it. can you show me with blocks.

@dovish_jindal Checks if all parameters are correct as in the image

1 Like