【发布时间】:2018-11-22 16:12:54
【问题描述】:
我在垂直 Recyclerview 中有水平 RecyclerViews 作为我的 HomeFragment。
每次我通过单击水平 RecyclerView 中的项目并返回 HomeFragment 导航到不同的片段时,我的水平 RecyclerView 都会滚动到第一个项目,并且不会保留最后一个状态(或滚动位置)。当我返回 HomeFragment 时,如何才能实现这一点,滚动位置与导航到不同 Fragment 之前的位置相同?
我遇到过使用 LinearLayoutManager 的 onSaveInstanceState() 和 onRestoreInstanceState() 但这是我的代码,我在垂直回收视图的 onBind() 上添加了水平回收视图,我不知道在哪里使用这些方法。
void onBind(HomeData data) {
binding.setVariable(BR.homedata, data);
binding.executePendingBindings();
if (binding instanceof ItemMovieListBinding) {
MoviesAdapter adapter = new MoviesAdapter(new MovieDiffCallback(), clickCallback);
((ItemMovieListBinding) binding).rvMovieList.setLayoutManager(new LinearLayoutManager(context, RecyclerView.HORIZONTAL, false));
((ItemMovieListBinding) binding).rvMovieList.setAdapter(adapter);
adapter.submitList((List<Movie>) data.getData());
}
}
【问题讨论】:
标签: android android-recyclerview