问题描述
我是 Epoxy Recyclerview 的新手。我的查询如下。
- 我使用 kotlin 数据绑定在 recyclerview 中添加了很多项目,其中包括横幅、标题、网格、产品轮播。
- 我有一个按钮,可以在心愿单中添加产品并更改视图颜色。此功能运行良好。
- 我想要的不是将 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)
}
}
}
}
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)