【发布时间】:2025-12-03 18:25:01
【问题描述】:
我在我的应用程序中添加了 Android 新导航组件并创建了 navGraph 并添加了一些片段作为目的地。我发现每次我导航到目的地之前的目的地(片段)都开始重新启动。而我上一个目的地(片段)的最后状态已经丢失。有什么选择可以保留这个吗?
因为我已经在片段中使用了retainInstance。
【问题讨论】:
-
它没有重新启动,它被替换。这和你做
replace().addToBackStack()的时候一样。所以 Fragment 的状态应该是它原来的样子,但是视图是重新创建的。 -
@EpicPandaForce 谢谢,那么我如何维护用户向下滚动的 recyclerview 视图的状态?
-
RecyclerView 的 LayoutManager 应该持久化并恢复其状态,也就是存储滚动位置;这意味着您不需要仅仅因为您导航回来就重新加载数据(尤其是不要将空列表设置为初始化)。
标签: android kotlin android-architecture-navigation android-jetpack-navigation