- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Mosby Android 应用程序中的模型- View -Presenter 库。在一个特定的 View 中,我正在使用 Bottom Navigation用 Design Support Library v25.1.0 实现.我在 Activity 中的 3 个 fragment 之间切换。为了处理旋转配置更改,我使用 Mosby 的自定义 RestorableViewState .
我遇到的问题是 Mosby 将 View 的状态存储在 Activity 的 onSaveInstanceState(Bundle bundle) 中,当我在同一 Activity 中交换 fragment 时不会调用它,只有 Fragment 的 onDestroyView() 被调用。目前我将状态单独存储在 fragment 本身中(因为 fragment 在切换 fragment 时不会被破坏,只是 fragment 的 View )但我有冗余代码,这有点违背了使用 MVP 架构的目的。
是否有更优雅的解决方案来在方向更改和交换 fragment 期间存储 fragment 的状态?
最佳答案
这有点棘手。我猜您正在使用 replace()
进行 FragmentTransaction 是吗?问题是,使用 replace 时,您实际上每次都在创建一个新的 Fragment 实例。因此没有可以恢复的状态。您应该调用 FragmentTransaction.show(fragment)
和 FragmentTransaction.hide(fragment)
。
此外,Mosby 2 对这个用例没有完美的支持,Mosby 3 将对此提供更好的支持。
关于android - Mosby MVP - 如何在 onDestroyView() 之后重新创建 Fragment 的状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41808153/
我是一名优秀的程序员,十分优秀!