2

我是 Epoxy Recyclerview 的新手。我的查询如下。

  1. 我使用 kotlin 数据绑定在 recyclerview 中添加了很多项目,包括横幅、标题、网格、产品轮播。
  2. 我有一个按钮,可以在愿望清单中添加产品并更改视图颜色。此功能运行良好。
  3. 我想要的不是将 recyclerview 滚动到顶部并重置所有视图。就像我将轮播中的第 4 个产品标记为 inWishlist 一样,recyclerview 不得滚动到顶部并且轮播不得重置。

谁能帮助我实现这一目标?

这是代码 这是 HomeData 类。

data class HomeData(val listBanners : ArrayList<String> = arrayListOf("banner1", "banner2", "banner3"),
                val listOutCategories : ArrayList<String> = arrayListOf("1", "2", "3", "4", "5", "6", "7", "8"),
                val listSaleProducts : ArrayList<Product> = arrayListOf(
                    Product(id=0, price = "$10.90"),
                    Product(id=1, price = "$11.90"),
                    Product(id=2, price = "$12.90"),
                    Product(id=3, price = "$13.90"),
                    Product(id=4, price = "$14.90"),
                    Product(id=5, price = "$105.90"),
                    Product(id=6, price = "$17.90"),
                    Product(id=7, price = "$18.90")
                ))

data class Product(val id:Int = 0, val name:String = "Product", val price:String="12.90", var inWishlist:Boolean = false)

这是调用来设置数据的函数。

fun setRecyclerView(data:HomeData, isLoading : Boolean){

    binding.recyclerView.clear()

    binding.recyclerView.withModels {
        if(isLoading){
            loadList {
                id("loading")
                mainViewModel(mainActivityViewModel)
                spanSizeOverride { totalSpanCount, position, itemCount -> 1 }
            }
        }else{

            carousel {
                id("top-banners")
                withModelsFrom(data.listBanners){
                    TopBannerBindingModel_().id(it)
                }
            }

            title {
                id("out_categories_title")
                title("The Out Categories")
            }

            grid {
                id("out_cat_group")
                onBind { model, view, position ->
                    (view.dataBinding as ItemGridBinding).recyclerViewGrid.withModels {
                        data.listOutCategories.forEachIndexed { index, s ->
                            outCategory {
                                id("$index-$s")
                            }
                        }
                    }
                }
            }

            title {
                id("on_sale_title")
                title("On Sale")
            }

            carousel {
                id("on_sale_products")
                withModelsFrom(data.listSaleProducts){
                    ProductBindingModel_()
                        .id(it.id)
                        .product(it)
                        .clickListener { model, parentView, clickedView, position ->
                            data.listSaleProducts[position].inWishlist = true
                            setRecyclerView(data, false)
                        }
                }
            }
        }
    }
}

在此处输入图像描述

4

0 回答 0