Я составил список, который получает элементы из базы данных комнат, используя 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());
после обновления произошло, но я не знаю, как автоматически вызвать его при обновлении
Project Repo