リスト変更

インターフェース List変更<t>

このシード処理されたインターフェースでは、 RealmListコレクションに発生する可能性のある変更について説明します。

状態は、 InitialListUpdatedListDeletedListの特定のサブクラスによって表されます。 リストが削除されると、 nullの代わりに空のリストが生成されます。

したがって、変更はさまざまな方法で消費されます。

// 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)
}

リストが更新されると、以前のバージョンからの変更を説明する追加情報が提供されます。 この情報は、 RecyclerViewのような UI コンポーネントでアニメーションを実行するために直接フィードできる方法で形式されます。 この情報にアクセスするには、 Listchangeを適切なサブクラスにキャストする必要があります。

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()
}
}

継承

プロパティ

クリップボードにコピーされたリンク
抽象 価値 list: RealmList<t>