ネットワーク APIからデータをフェッチするをRecyclerView
使用するがあります。を使用して、返されたデータがデータベース (ROOM) に挿入される API に要求を行います。PagedListAdapter
ROOM
BoundaryCallback
現在のリストはフィルタリング可能です。たとえば、製品のリストを複数のカテゴリでフィルタリングできます
問題
インクリメント ボタンを使用して製品アイテムquantity
をたとえば 12 に増やし、さらにカテゴリを追加してリストをフィルタリングしようとすると、現在のリストは更新されませんが、DiffUtil.ItemCallback はアイテムが同じであることを確認するため、問題ありませんが、より多くのカテゴリでフィルタリングした後、同じ製品の数量を増やしようとすると、再びゼロから始まります....
数量は部屋の列ではなく、無視される変数であることに注意してください。
したがって、問題が実際に何であるかはよくわかりません。以下は、インクリメントとデクリメントを行うコードです。
override fun onIncrementQuantity(position: Int, item: ProductEntity) {
item.quantity = item.quantity + 1
selectedProducts[item.item.id!!] = item
productAdapter?.notifyItemChanged(position, item)
}
override fun onDecrementQuantity(position: Int, item: ProductEntity) {
item.quantity = if (item.quantity == 0) 0 else item.quantity - 1
if (item.quantity == 0) {
selectedProducts.remove(item.item.id)
} else {
selectedProducts[item.item.id!!] = item
}
productAdapter?.notifyItemChanged(position, item)
}