Listview

Descrição do componente ListView, seus atributos e construtores

O que é?

O componente ListView é responsável por definir uma lista de itens recicláveis nativamente. Esses itens podem ser quaisquer componentes server driven. O uso do ListView é recomendado para situações onde há repetição de componentes, porém com dados diferentes.

A sua estrutura é representada como mostrado abaixo:

ListView

AtributoTipoObrigatórioDefinição
directionListDirectionDefine o direcionamento em que os items da lista são exibidos.
contextContextDataDefine o contexto do componente.
onInitList<Action>Lista de ações a serem executadas assim que o componente é exibido.
dataSourceBind<List<Any>>Expressão que aponta para uma lista de valores usados para popular o componete.
templateServerDrivenComponentRepresenta cada celula na lista através de um ServerDrivenComponent.
isScrollIndicatorVisibleBoolDefine se a barra de scroll é visivel.
onScrollEndList<Action>Lista de ações executadas quando a lista chega ao fim.
scrollEndThresholdIntDefine a porcentagem rolada da lista para disparar o onScrollEnd.
iteratorNameStringÉ o identificador do contexto de cada célula.
keyStringAponta para um valor único presente em cada item do dataSource para ser usado como um sufixo nos ids dos componentes do template.

ListDirection

É um ENUM, cujos valores são:

ValorDefinição
VERTICALQuando os items são exibidos em LINHAS.
HORIZONTALQuando os itens são exibidos em COLUNAS.

ListView Depreciado

AtributoTipoObrigatórioDefinição
childrenList<ServerDrivenComponent>Define os itens da lista de visualização. Eles podem ser configurados como uma lista de ServerDrivenComponents ou como views.
directionListDirectionDefine o direcionamento da lista de visualização.

Como usar?

ListView

{
    data class Person (
            val name: String,
            val race: String,
            val planet: String,
            val isMistborn: Boolean,
            val age: Int,
            val sex: String
    )
    
    val characters = listOf(
        Person(
            name = "Kelsier",
            race = "Half-skaa",
            planet = "Scadrial",
            isMistborn = true,
            age = 38,
            sex = "male"
        ),
        Person(
            name = "Vin",
            race = "Half-skaa",
            planet = "Scadrial",
            isMistborn = true,
            age = 20,
            sex = "female"
        ),
        Person(
            name = "TenSoon",
            race = "Kandra",
            planet = "Scadrial",
            isMistborn = false,
            age = 40,
            sex = "male"
        ),
    )
    
    ListView(
        context = ContextData(id = "characters", value = characters),
        dataSource = expressionOf("@{characters}"),
        template = Container(
            children = listOf(
                Text("Name: @{item.name}"),
                Text("Race: @{item.race}"),
                Text("Mistborn: @{item.isMistborn}"),
                Text("Planet: @{item.planet}"),
                Text("sex: @{item.sex}"),
                Text("age: @{item.age}"),
            )
        ).applyStyle(
            Style(
                margin = EdgeValue(bottom = 20.unitReal())
            )
        )
    )
}

ListView Depreciado

ListView(
    direction = ListDirection.HORIZONTAL,
    children = listOf(
        Text(
            text = "Beagle Text list",
            textColor = "#FF0000",
            alignment = TextAlignment.CENTER
        ),
        Text(
            text = "Beagle Text list",
            textColor = "#00FF00",
            alignment = TextAlignment.CENTER
        ),
        Text(
            text = "Beagle Text list",
            textColor = "#0000FF",
            alignment = TextAlignment.CENTER
        )
    )
)