gpt4 book ai didi

android - RecyclerView 在弹出返回堆栈后重新创建时是否应该记住它的位置?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:07:34 26 4
gpt4 key购买 nike

我有一个 fragment ,我用一个新的事务替换它

该 Fragment 包含一个包含大量项目的 RecyclerView。

当用户在新 fragment 上按下完成按钮时,我弹出后退堆栈,并重新创建旧 fragment 。

这会导致再次调用 OnCreateView 方法,一切正常。

我的问题是其中的 RecyclerView 被重新创建,适配器被重置,但它似乎自动移动到它离开的位置(我假设只有在我使用事务添加而不是事务替换时才会发生)

作为旁注,适配器仍会为可见项调用 OnBindViewHolder 和 OnCreateViewHolder。

我的问题是,为什么会这样?由于重新创建了整个 fragment ,它不应该重置到第一个位置吗?除了在加载新 fragment 之前手动调用 scrollToPosition(0) 之外,还有另一种方法可以让 fragment 不记得任何东西并在返回时完全重新创建吗?

最佳答案

LinearLayoutManager 将滚动位置存储在 onSaveInstanceState 中。由于 SavedState parcelable 与 View id 一起存储,因此只要从 backstack 返回时位置不越界,滚动位置就会恢复。

关于android - RecyclerView 在弹出返回堆栈后重新创建时是否应该记住它的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50943997/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com