在项目更新时停止滚动 Epoxy Recyclerview

问题描述

我是 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)
                        }
                }
            }
        }
    }
}

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...