我会搜索项目,每次从服务器获取时
当我搜索“o”时,它起作用,然后“ot”它再次起作用,作为“o”搜索的结果,我有 20 个项目,如果是“ot”,我有 10 个项目
这是这 20 个项目的一部分,我确实删除了 EditText 中的 t,它显示了 20 个项目,只有 recyclerview 滚动指示器位于中间
这是我的 diffUtil 代码
ListAdapter<Asset, SearchAdapter.ViewHolder>(object : DiffUtil.ItemCallback<Asset>() {
override fun areItemsTheSame(oldItem: Asset, newItem: Asset): Boolean {
return oldItem.assetId == newItem.assetId && oldItem.originalTitle ==newItem.originalTitle
}
override fun areContentsTheSame(oldItem: Asset, newItem: Asset): Boolean {
return oldItem == newItem
}
}
viewModel.searchAssets.observe(viewLifecycleOwner, Observer {
searchAdapter.submitList(it)
})
在这里你可以看到我拍摄的视频https://drive.google.com/drive/folders/1ia5y9TtL0PSAM1M4hVBILWcdSK1BDyKI?usp=sharing https://drive.google.com/drive/folders/1ia5y9TtL0PSAM1M4hVBILWcdSK1BDyKI?usp=sharing
我想回答我自己的问题,因为我从 Yiğit 得到了答案
提交列表有另一个重载,它在列表时接收回调
应用你可以使用它并只需调用 rv.scrollToPosition(0)
这是我的代码:
searchAdapter.submitList(it) {
viewBinding.searchList.scrollToPosition(0)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)