android - 为什么使用 JetPack Navigation 导航后会立即调用 fragment 中的 onDestroyView

标签 android android-architecture-components android-jetpack

当您导航到不同的 fragment 时,立即调用 onDestroyView() 这是正常行为吗?

我调用以下方法进行导航:

findNavController().navigate(R.id.action_homefragment_to_detailsfragment)

有办法避免这种情况吗?或者应该从 ViewModel 恢复所有内容?例如我在 ScrollView 中的最后一个滚动位置..

最佳答案

后退堆栈上的 fragment 的 View 会被销毁,但 View 状态会被保存,并在再次到达堆栈顶部时自动恢复(即,您点击系统后退按钮)。

只有具有 android:id 的 View 才会保存和恢复其状态,因此请确保所有重要 View 都有一个 id。

关于android - 为什么使用 JetPack Navigation 导航后会立即调用 fragment 中的 onDestroyView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53484790/

相关文章:

android - 将UniquePeriodicWork 加入队列的最佳位置是什么?

java - 通过 Intent 传递 Bitmap 时出现空指针异常

android - 注释参数必须是编译时常量

Android WorkManager - 如何延迟任务?

android - 带有导航项和普通项的抽屉导航

android - 如何使用 ViewModel 和 LiveData 进行改造 API 调用

android - Kotlin 1.6、Jetpack Compose 1.1.0 编译错误

android - Lombok 无法使用 "Android room"。给出 "error: Cannot find getter for field"

Android Sqlite 将表从一个数据库转移到另一个数据库

java - 如何在我的应用程序中使用Android默认墙纸裁剪选项来设置墙纸