【问题标题】:Android Can't retain fragments that are nested in other fragmentsAndroid不能保留嵌套在其他片段中的片段
【发布时间】:2014-08-27 06:56:46
【问题描述】:

我的应用程序有问题,我尝试在另一个片段中添加三个片段,然后 Eclipse 显示:

java.lang.IllegalStateException: 无法保留嵌套在其他片段中的片段

这是我在 childFragments 中的代码

getChildFragmentManager().beginTransaction()
            .add(R.id.shop_fragment_container, shopTopOneFragment)
            .add(R.id.shop_fragment_container, shopTopTwoFragment)
            .add(R.id.shop_fragment_container, shopTopThreeFragment)
            .hide(shopTopTwoFragment).hide(shopTopThreeFragment)
            .show(shopTopOneFragment).commit();

任何帮助将不胜感激

【问题讨论】:

    标签: android android-fragments


    【解决方案1】:

    不能保留嵌套在其他片段中的片段

    这是嵌套Fragments 的限制。我猜你的一个或多个孩子Fragments 在他们的代码中某处有setRetainInstance(true)。您需要删除它以防止出现错误。

    编辑:在进一步阅读中,如果父 Fragment 正在调用 setRetainInstance(true),那么它将导致同样的异常,因为尝试保留父实例也会尝试保留子实例 Fragments

    【讨论】:

    • 我检查了我的代码,但找不到 setRetainInstance(true)
    • @DomonLee : 你在你的父母Fragment 中打电话给setRetainInstance(true) 吗?
    • 我再次检查了我的代码,并在我的父片段中找到了它。然后我将其删除,一切正常!!谢谢~
    • @DomonLee :很高兴为您提供帮助。我做了一些进一步的阅读,表明原因是父母Fragment。我已经编辑了我的答案。
    • 有助于解决Eclipse项目中出现的问题。谢谢你。顺便说一句,Android Studio 中的相同代码“setRetainInstance(true”) 运行正常。
    猜你喜欢
    • 2013-01-28
    • 1970-01-01
    • 2018-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多