gpt4 book ai didi

android - Mosby MVP - 如何在 onDestroyView() 之后重新创建 Fragment 的状态?

转载 作者:行者123 更新时间:2023-11-30 00:45:56 27 4
gpt4 key购买 nike

我正在使用 Mosby Android 应用程序中的模型- View -Presenter 库。在一个特定的 View 中,我正在使用 Bottom NavigationDesign 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/

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