ExpandableList

data class ExpandableList<T>(items: List<T>, minimumVisibleItems: Int = items.size, val isCollapsed: Boolean = true) : List<T>

A read-only, immutable list wrapper that supports expandable and collapsible behavior.

This class behaves like a standard List but adds metadata and logic to control visibility of its elements based on a specified minimumVisibleItems threshold and current isCollapsed state.

Behavior:

Parameters

T

the type of elements contained in the list.

items

the full list of items to wrap.

minimumVisibleItems

the minimum number of items to show when collapsed. Defaults to the full list size (no collapsing by default).

isCollapsed

whether the list is currently collapsed (hiding excess items).

Constructors

Link copied to clipboard
constructor(items: List<T>, minimumVisibleItems: Int = items.size, isCollapsed: Boolean = true)

Properties

Link copied to clipboard

Indicates whether the list can be expanded or collapsed, i.e., when the number of items exceeds minimumVisibleItems.

Link copied to clipboard

The number of items that are currently collapsed (not visible). Returns 0 if the list is expanded or cannot be expanded.

Link copied to clipboard
val isCollapsed: Boolean = true

Inherited properties

Link copied to clipboard
open override val size: Int

Inherited functions

Link copied to clipboard
open override fun addFirst(p0: T)
Link copied to clipboard
open override fun addLast(p0: T)
Link copied to clipboard
open operator override fun contains(element: T): Boolean
Link copied to clipboard
open override fun containsAll(elements: Collection<T>): Boolean
Link copied to clipboard
open fun forEach(p0: Consumer<in T>)
Link copied to clipboard
open operator override fun get(index: Int): T
Link copied to clipboard
open override fun getFirst(): T
Link copied to clipboard
open override fun getLast(): T
Link copied to clipboard
Link copied to clipboard
open override fun indexOf(element: T): Int
Link copied to clipboard
open override fun isEmpty(): Boolean
Link copied to clipboard
open operator override fun iterator(): Iterator<T>
Link copied to clipboard
open override fun lastIndexOf(element: T): Int
Link copied to clipboard
open override fun listIterator(): ListIterator<T>
open override fun listIterator(index: Int): ListIterator<T>
Link copied to clipboard
open fun parallelStream(): Stream<T>
Link copied to clipboard
open override fun removeFirst(): T
Link copied to clipboard
open override fun removeLast(): T
Link copied to clipboard
open override fun reversed(): MutableList<T>
Link copied to clipboard
open override fun spliterator(): Spliterator<T>
Link copied to clipboard
open fun stream(): Stream<T>
Link copied to clipboard
open override fun subList(fromIndex: Int, toIndex: Int): List<T>
Link copied to clipboard
open fun <T : Any> toArray(p0: IntFunction<Array<T>>): Array<T>