更新:此方法有效,只有保存不起作用,所以我选择另一种方法来保存此数组。
在我的布局中,我有一个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加载其内容后调用第二个函数。
但它不起作用......
有什么想法吗?
答案 0 :(得分:0)
如果要在使用片段管理器弹出堆栈后恢复NestedScrollView的滚动位置,则无需手动进行操作。对我来说,问题是缺少NestedScrollView的 id 。在xml布局中添加ID后,一切都可以正常工作。