ListaMudar

Interface ListChange<t>

Esta interface selada descreve as possíveis alterações que podem acontecer a uma collection RealmList .

Os estados são representados pelas subclasses específicas InitialList, UpdatedList e DeletedList. Quando a lista é excluída, uma lista vazia é emitida em vez de null.

As mudanças podem ser consumidas de várias maneiras:

// Variant 1: Switch on the sealed interface
person.addresses.asFlow()
.collect { listChange: ListChange<Address> ->
when(listChange) {
is InitialList -> setAddressesUIList(listChange.list)
is UpdatedList -> updateAddressesUIList(listChange) // Android RecyclerView knows how to animate ranges
is DeletedList -> deleteAddressesUIList()
}
}


// Variant 2: Just pass on the list
person.addresses.asFlow()
.collect { listChange: ListChange<Address> ->
handleChange(listChange.list)
}

Quando a lista é atualizada, informações adicionais são fornecidas descrevendo as alterações da versão anterior. Essas informações são formatadas de uma forma que podem ser alimentadas diretamente para direcionar programações em componentes da interface do usuário como RecyclerView. Para acessar essas informações, o ListChange deve ser convertido na subclasse apropriada.

person.addresses.asFlow()
.collect { listChange: ListChange<Address> ->
when(listChange) {
is InitialList -> setList(listChange.list)
is UpdatedList -> { // Automatic cast to UpdatedList
updateList(
listChange.list,
listChange.deletionRanges,
listChange.insertionRanges,
listChange.changeRanges
)
}
is DeletedList -> deleteList()
}
}

Herdeiros

Propriedades

Link copiado para a área de transferência
resumo valid Lista: Lista de domínios<t>