[Free] DynamicListView Extension from Still Learning

🧩 DynamicListView

An extension for Kodular.
Dynamic CardView List with async batch loading, customizable animations, and extensive item management

:memo: Specifications


:package: Package: io.jai.dynamiclistview
:floppy_disk: Size: 34.35 KB
:mobile_phone: Minimum API Level: 7
:date: Updated On: 2025-05-21T18:30:00Z
:laptop: Built & documented using: FAST v3.4.0


Hello Team this time i have created another tiny extension for the favour of kodular community. This can be achieved by Dynamic component extension but this will save your time and code, error if you prefer this model of list view

  1. User can set image (round as well as square)
  2. Users can add list of title, subtitle as a yailist
  3. User can enjoy the feature with fav button (if heart choosen red star will be filled with red, else small red will filled if choosen)
  4. Also user can have description under the above said layout in any number of lines (if doesnot need can be hidden)
  5. Above all you i also have provided one more cardview button to have the index. (this also can be hidden if do not need)

Users can create Dynamic list in two ways.

  1. As add items ( by using for each items from the list)

  2. or after making list you can pass

For user friendly i have added few event dispatcher


Also added few animation while creating the componets as well as while scrolling up and down ( but it was limited right now)

Available animation for CreationAnimationType = {“Fade”, “Slide”, “Scale”, “Bounce”}
Available animation for ScrollAnimationType = {“Off”,“Fade”, “Slide”, “Scale”, “Bounce”}

DynamicListView

Dynamic CardView List with async batch loading, customizable animations, and extensive item management

Events:

FavoriteClicked

Fired when a favorite button is clicked, returns 1-based index and row data [imageUrl, titles, description, isFav]

Parameter Type
index number
rowData list

RowClicked

Fired when a row is clicked, returns 1-based index and row data [imageUrl, titles, description, isFav]

Parameter Type
index number
rowData list

DescriptionClicked

Fired when description text is clicked, returns 1-based index and row data [imageUrl, titles, description, isFav]

Parameter Type
index number
rowData list

ItemLoaded

Fired when an item is loaded, with the number of loaded and remaining items

Parameter Type
loadedCount number
remainingCount number

CardviewButtonClicked

Fired when the cardview button is clicked, returns 1-based index and row data [imageUrl, titles, description, isFav]

Parameter Type
index number
rowData list

ItemVisible

Fired when an item becomes visible during scrolling, returns 1-based index

Parameter Type
index number

Methods:

Initialise

Initializes the DynamicListView in the specified container with animation

Parameter Type
container component

AddItem

Adds an item with image URL, list of titles, description, and cardview button flag

Parameter Type
imgURL text
titles list
description text
isNeedCardviewButton boolean

SetList

Sets the full list with image URLs, titles, descriptions, and a cardview button flag for all items

Parameter Type
imgURLList list
titlesList list
descriptionList list
isNeedCardviewButton boolean

DeleteAll

Removes all items from the list

DeleteByIndex

Removes an item at the specified 1-based index

Parameter Type
index number

InsertItemAtIndex

Inserts an item at the specified 1-based index

Parameter Type
index number
imgURL text
titles list
description text
isNeedCardviewButton boolean

GetItemData

Returns the data [imageUrl, titles, description, isFav] for the item at the specified 1-based index

Parameter Type
index number

Return Type: list

UpdateItem

Updates the item at the specified 1-based index

Parameter Type
index number
imgURL text
titles list
description text
isNeedCardviewButton boolean

Properties:

RoundImage

If true, displays images as circular

RoundImage

If true, displays images as circular

TitleTextColor

Sets the title text color (ARGB)

TitleTextColor

Sets the title text color (ARGB)

TitleFontBold

If true, sets the title font to bold

TitleFontBold

If true, sets the title font to bold

TitleFontSize

Sets the title font size in sp

TitleFontSize

Sets the title font size in sp

Title1TextColor

Sets the first title text color (ARGB)

Title1TextColor

Sets the first title text color (ARGB)

Title1FontBold

If true, sets the first title font to bold

Title1FontBold

If true, sets the first title font to bold

DescriptionTextColor

Sets the description text color (ARGB)

DescriptionTextColor

Sets the description text color (ARGB)

DescriptionFontBold

If true, sets the description font to bold

DescriptionFontBold

If true, sets the description font to bold

DescriptionFontSize

Sets the description font size in sp

DescriptionFontSize

Sets the description font size in sp

CardviewButtonText

Sets the text for the cardview button

CardviewButtonText

Sets the text for the cardview button

CardviewButtonBackgroundColor

Sets the cardview button background color (ARGB)

CardviewButtonBackgroundColor

Sets the cardview button background color (ARGB)

CardviewButtonTextColor

Sets the cardview button text color (ARGB)

CardviewButtonTextColor

Sets the cardview button text color (ARGB)

CardviewButtonVisible

If true, displays the cardview button

CardviewButtonVisible

If true, displays the cardview button

CardViewBackgroundColor

Sets the cardview background color (ARGB)

CardViewBackgroundColor

Sets the cardview background color (ARGB)

CardviewStrokeColor

Sets the cardview stroke color (ARGB)

CardviewStrokeColor

Sets the cardview stroke color (ARGB)

CardviewStrokeWidth

Sets the cardview stroke width in dp

CardviewStrokeWidth

Sets the cardview stroke width in dp

CardElevation

Sets the elevation of the cards in dp

CardElevation

Sets the elevation of the cards in dp

CardCornerRadius

Sets the corner radius of the cards in dp

CardCornerRadius

Sets the corner radius of the cards in dp

IsFavButtonHeart

If true, uses a heart icon for the favorite button

IsFavButtonHeart

If true, uses a heart icon for the favorite button

IsFavButtonRound

If true, makes the favorite button round (affects star icon only)

IsFavButtonRound

If true, makes the favorite button round (affects star icon only)

FontPath

Sets the font file for titles and description (path to .ttf in assets)

FontPath

Sets the font file for titles and description (path to .ttf in assets)

FavIconOn

Sets the drawable resource for favorited state (asset path)

FavIconOn

Sets the drawable resource for favorited state (asset path)

FavIconOff

Sets the drawable resource for non-favorited state (asset path)

FavIconOff

Sets the drawable resource for non-favorited state (asset path)

CreationAnimationType

Sets the animation type for item creation as Fade, Slide, Scale, Bounce

CreationAnimationType

Sets the animation type for item creation as Fade, Slide, Scale, Bounce

ScrollAnimationType

Sets the animation type for scrolling as Fade, Slide, Scale, Bounce

ScrollAnimationType

Sets the animation type for scrolling as Fade, Slide, Scale, Bounce

Credit:

This extension was created by FAST EXTENSION BUILDER and the owner @JEWEL for his wounderful platform. thank you jewel

@Sashkin_Bro for testing the extension and share his screenshots, Thank you man

@Akshat_Rana for the documentation from here


Here, You can customize the folowing

  1. cardview bg colour, stroke color, stroke width, corner radius
  2. Image can be rounded or squared
  3. Can set Titles as a yaillist. You can set as much as you want. In the above code we used 4 items. Here first Title also can be customized rest also can be customized.
  4. As said earlier fav button, description and cardview button also can be customized thier colour, visibility etc.
    .

Extension

Version 1 : io.jai.dynamiclistview.aix (34.4 KB)

Published on : 2025-05-22T17:45:00Z

If time permists test my extension and share your feedbacks or report bug.

6 Likes

cool extension, I use it in my application, I can recommend it! very light, does not load the smartphone, easy to use!

1 Like

Version 2

io.jai.dynamiclistview.aix (49.9 KB)

Features added

  1. boolean isFav added
  2. Yailist isFavList added
  3. cardviewbutton style (font, height added)

3 Likes

Version 02

Few blocks are added
Few blocks are removed

Design 1

Design 2

Design 3

Design 4

Design 5

Design 6

Design 7

Design 8

Design 9

Design 10

The components include ImageView, Favorite Button (star), Texts (titles, subtitles), Description, and Action Button (CardView button). The layout containers and their orientation are also noted for clarity.

Design ImageView Position & Size Favorite Button Position & Size Texts Position & Layout Description Position & Layout Action Button Position & Layout Other Notes / Containers
1 Top, full width, height=180dp, FrameLayout container Overlay on top-right corner of image, 40x40dp, FrameLayout.LayoutParams with gravity TOP Below image, vertical LinearLayout Below texts, vertical LinearLayout Below description/texts, vertical LinearLayout CardView > LinearLayout(vertical) > FrameLayout(image container) + textLayout
2 Left, 100x100dp, vertical LinearLayout container Below image, centered horizontally, 40x40dp Right side, vertical LinearLayout with weight=1 Below texts, vertical LinearLayout Below all, vertical LinearLayout CardView > LinearLayout(vertical) > LinearLayout(horizontal) with imageContainer + textLayout
3 Right, 80x80dp, vertical LinearLayout container Below image, 40x40dp Left side, vertical LinearLayout with weight=1 Below texts, vertical LinearLayout Below image and favButton, vertical LinearLayout CardView > LinearLayout(vertical) > LinearLayout(horizontal) with textLayout + rightLayout(image + fav + button)
4 Top, full width, height=150dp, FrameLayout container Overlay on top-right corner of cardFrame, 40x40dp, FrameLayout.LayoutParams with gravity TOP Below image, vertical LinearLayout Below texts, vertical LinearLayout Bottom right aligned, horizontal LinearLayout with compact button CardFrame(FrameLayout) > CardView > LinearLayout(vertical) > FrameLayout(image container) + textLayout + buttonBar
5 Top, full width, height=150dp, FrameLayout container Below texts, top-right corner inside root layout, 40x40dp, FrameLayout.LayoutParams with gravity TOP Below image, left side, vertical LinearLayout with weight=1 Below contentLayout (texts + button), vertical LinearLayout Inside contentLayout, right side, button with compact style CardView > LinearLayout(vertical) > FrameLayout(imageFrame) + contentLayout(horizontal) with textLayout + button
6 Top, full width, height=180dp, FrameLayout container with overlay Overlay on top-right corner of image in FrameLayout, 40x40dp Below image, vertical LinearLayout with padding Below texts, vertical LinearLayout Below description/texts, vertical LinearLayout CardView > FrameLayout(image + overlay + favButton) + LinearLayout(texts + button)
7 Left, 50x50dp, horizontal LinearLayout root Inline with title text, 24x24dp, horizontal LinearLayout Right side, vertical LinearLayout with weight=1 Below subtitles, vertical LinearLayout Below texts, vertical LinearLayout CardView > LinearLayout(horizontal) > ImageView + textStarLayout(vertical) with titleStarLayout(horizontal) + subtitles + description + button
8 Left, 100x100dp, horizontal LinearLayout root Inline with title text, 24x24dp, horizontal LinearLayout Right side, vertical LinearLayout with weight=1 Below subtitles, vertical LinearLayout “More” button bottom right aligned, vertical LinearLayout CardView > LinearLayout(horizontal) > ImageView + rightLayout(vertical) with titleStarLayout(horizontal) + subtitles + description + moreButton
9 Left, 80x80dp, horizontal LinearLayout firstVA Right side of firstVA, 40x40dp, horizontal LinearLayout Center of firstVA, vertical LinearLayout with weight=1 Below firstVA, vertical LinearLayout Below description/texts, vertical LinearLayout CardView > LinearLayout(vertical) > firstVA(horizontal) with imageView + titleSubLayout + favButton + description + button
10 Left, 50x50dp, horizontal LinearLayout root Inline with title text, 24x24dp, horizontal LinearLayout Right side, vertical LinearLayout with weight=1 Below subtitles, vertical LinearLayout Below texts, vertical LinearLayout CardView > LinearLayout(horizontal) > ImageView + textStarLayout(vertical) with titleStarLayout(horizontal) + subtitles + description + button

io.jai.dynamiclistview.aix (38.9 KB)

What are the components can be modified?

  1. Title 1 - Font,color
  2. Subtitle1&2 - Font, Color
  3. Cardview - background, stroke width, stroke colour, gap between each card, radius (do not try to set width and height as it contains many child it may distorted)
  4. Image - isround true / false
  5. Action button - text, text + material icon, bg colour, text color, stroke width, stroke colour

You can easily manage the favorites upon clicking the fav button

Method 1: Create DynamicList from the global data
Method 2: Create DynamicList from the fav Only

No problem while compiling the project into apk with this extension

Version 03 - Updated

  • Search function added (it will automatically search in main list as well as from favourite just by turning true/fase in the required parameter)
    image

  • To differentiate click event with other dynamic components, added tag method. (fav will have jaiFav, action button will have jaiAct. It can be renamed under designer property)

io.jai.dynamiclistview.aix (38.5 KB)

can i add a native ads in this list view ?how can it be possible please try

Version 5 updated with demo aia, apk and extension

oh sorry man. That kind of function is not yet been added. In future i will try to add in the upcoming version.

Stay tuned