我已经创建了一个列表,该列表使用LiveData
从会议室数据库中获取项目。然后使用liveData<List>
将此recyclerView
绑定到BindingAdapter
。列表适配器是listAdapter
,而不是`RecyclerView.Adapter。
我需要保持滚动状态的帮助,或者需要以某种方式返回到重新加载recyclerView
之前的滚动索引:
//In ViewModel val movieList = moviesRepository.movies
..
//in Repo val movies: LiveData<List<Movie>> = Transformations.map(database.movieDao.getMovies()) { it.asDomainModel() }
每次数据库更新时,
recyclerView
都会返回顶部。
这是bindingAdapter
和列表的RecyclerView
。
@BindingAdapter("listData") fun bindRecyclerView(recyclerView: RecyclerView, data: List<Movie>?) { val adapter = recyclerView.adapter as MovieListAdapter //Log.d("listData binding", "${data}") adapter.submitList(data) }
我想我需要使用类似
recyclerView.smoothScrollToPosition(la.getItemCount());
更新发生后,但是我不知道更新发生后如何自动调用它]
recyclerView.smoothScrollToPosition(la.getItemCount());
我列出了一个列表,该列表使用LiveData从Room数据库中获取项目。然后,使用BindingAdapter将此liveData 绑定到recyclerView。列表适配器是listAdapter,而不是`...
首先不使用Project Repo ListAdapter
具有更优化的适配器RecyclerView
弄清楚了。我可以找到的所有示例都使用活动,而不是片段。因此,我要做的就是将其放入相关fragment.kt文件中的onCreateView()函数中。
recyclerView.smoothScrollToPosition(adapter.lastVisiblePosition)