使用多个RecyclerViews和其他视图保存/恢复NestedScrollView的状态

时间:2016-08-27 10:41:34

标签: android fragment android-recyclerview kotlin nestedscrollview

更新:此方法有效,只有保存不起作用,所以我选择另一种方法来保存此数组。

在我的布局中,我有一个NestedScrollView,其中包含一个LinearLayout,它包含多个RecyclerViews和其他视图。布局在片段内。 我尝试按以下方式保存和恢复滚动状态(这是Kotlin,所以不要对语法有所了解):

/usr/share/virtualenvwrapper/virtualenvwrapper.sh

我在fun NestedScrollView.savePosition(bundle: Bundle?) { bundle?.putIntArray("SCROLL_VIEW_POSITION", intArrayOf(scrollX, scrollY)) } fun NestedScrollView.restorePosition(bundle: Bundle?) { bundle?.getIntArray("SCROLL_VIEW_POSITION")?.let { post { scrollTo(it[0], it[1]) } } } 中调用第一个函数,在所有RecyclerViews加载其内容后调用第二个函数。

但它不起作用......

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果要在使用片段管理器弹出堆栈后恢复NestedScrollView的滚动位置,则无需手动进行操作。对我来说,问题是缺少NestedScrollView的 id 。在xml布局中添加ID后,一切都可以正常工作。