ListViewImageText (FREE)

ListViewImageText is a professional and functional extension designed to create modern interactive lists of media content, podcasts, and music playlists with support for asynchronous loading and flexible interface management.

Key Features

  • :musical_note: Exclusive Player: Automatic stopping of previous playback when a new track is started.
  • :scroll: Interactive Text: Collapsible and expandable description (detail) on click.
  • :page_facing_up: Pagination: Automatic content loading in portions (10 items at a time) when scrolling to the bottom of the list.
  • :hourglass_not_done: Dual Indication: Circular loader for file downloading and an animated horizontal loading line for audio playback.
  • :link: Hidden Links: Encapsulation of audio and download links directly inside list items without cumbersome auxiliary arrays.

Functions (Methods)

  • Initialize :mobile_phone:
    • What it does: Initializes and binds the custom list to a specified container on the screen (e.g., Vertical Scroll Arrangement).
    • Why it is needed: Mandatory starting block to display the list in the application.
  • AddItem :plus:
    • What it does: Adds a new cell, accepting title (title), description (detail), image path (imageUrl), hidden audio link (audioUrl), and download link (downloadUrl).
    • Why it is needed: The main building block for populating your playlist or catalog.
  • ClearAll :wastebasket:
    • What it does: Completely clears the list of items, resets indices, cache, and current playback states.
    • Why it is needed: Convenient to use when updating data or reloading the screen.
  • SetPlayState :play_button:
    • What it does: Programmatically sets the playback state (True/False) for a specific item by its index.
    • Why it is needed: Allows synchronizing the Play/Pause button icon if a track finishes automatically.
  • SetDownloadState :inbox_tray:
    • What it does: Changes the view of the download button: hides the icon and shows a circular loading indicator (True) or returns the icon back (False).
    • Why it is needed: Visual notification to the user about the file downloading process.
  • SetAudioLoadingState :hourglass_not_done:
    • What it does: Controls the visibility of the horizontal loading line under a specific cell.
    • Why it is needed: Shows the user that the audio file via the link is buffering before playback starts.

Events

  • PlayClick :headphone:
    • What it does: Triggered when the play button is clicked. Returns the index, title, description, hidden audioUrl, and current isPlaying status.
    • Why it is needed: Passes a direct link to the Player component to start music.
  • DownloadClick :floppy_disk:
    • What it does: Activated when the download button is pressed. Returns the item index and hidden downloadUrl.
    • Why it is needed: Passes the file link to download components (Download / Web).
  • ScrollBottom :scroll:
    • What it does: Fired automatically when the user scrolls the list to the very bottom.
    • Why it is needed: Ideal for implementing infinite scroll and pagination (loading the next 10 items).
  • ItemClick :backhand_index_pointing_up:
    • What it does: Triggered when clicking on the cell area (except the description text and buttons).
    • Why it is needed: Opening detailed information about an item or track.
  • ErrorOccurred :warning:
    • What it does: Intercepts system errors (e.g., image loading failure via a broken link) and returns the error text message.
    • Why it is needed: For debugging and stable application performance.



test4.aia (40.1 KB)

com.fast.listviewimagetext.aix (20.2 KB)

The extension was created with the help of: FAST

3 Likes

You can use the Fast documentation text, after build the extension, Fast provide well described documentation. Just copy and paste it. Also I think this extension is playlist based not a normal ListViewImageText, so you might rename it to music related name since it’s music focused.

Thank you for your contribution :smiling_face:

1 Like

It’s not just for music. You can hide these buttons; the corresponding settings have been added to the menu. I’m have implemented an expand/collapse feature for long text blocks.

We? Or you?:wink:sorry off topic.

Alright