【问题标题】:A bug in ViewPager using it with other fragmentViewPager 中的错误与其他片段一起使用
【发布时间】:2011-08-30 09:27:50
【问题描述】:

我需要你的帮助。

我有一个带有两个片段的 Activity:一个片段在 LinearLayout 中带有简单的 TextView,另一个片段:ViewPager 在 FragmentPagerAdapter 中有 3 个片段。

我使用替换操作进行交易,但 ViewPager 出现错误:java.lang.IllegalStateException: Recursive entry to executePendingTransactions。

source code 显示了这个问题,也许有人知道如何解决它。

【问题讨论】:

  • 我通过其他方式解决了这个问题。在我的例子中,我创建了带有 2 个活动的 TabHost,然后在第一个活动中,我将 ViewPager 与 3 个片段放在一起,在第二个片段中,我将简单的片段与文本放在一起。
  • 对于嵌套片段,您需要在 FragmentPagerAdapter/FragmentStatePagerAdapter 的构造函数中传递 getChildFragmentManager()

标签: android android-fragments android-viewpager


【解决方案1】:

嗯,不。 ViewPager 扩展了 ViewGroup。这如何使它成为一个片段?

是的,不支持嵌套 Fragments 是对的。但是,如果您有一个 Fragment 包含一个 ViewPager,其 Adapter 包含多个 Fragment,则它可以工作。相信我,它有效。我在我现在正在处理的当前项目中使用它,我什至有嵌套的 ViewPagers 没有水平触摸事件争夺控制权,所以基本上我在 Fragment 中有 Fragments。

【讨论】:

  • 我试图完全按照您的描述进行操作,并得到问题中显示的错误。你能告诉我们你是如何做到这一点的吗?
  • 如果有人感兴趣,可以在这里找到可行的解决方案:stackoverflow.com/questions/7700226/…
【解决方案2】:

在 Android 支持库的修订版 11 中,您现在可以在片段中嵌套片段以避免递归异常。看到这个问题How to add a Fragment inside a ViewPager using Nested Fragment (Android 4.2)

【讨论】:

    【解决方案3】:

    ViewPager 基本上是一个 Fragment,不能将 Fragment 放在 Fragment 中。期间。

    【讨论】:

    • FragmentPagerAdapter 和 FragmentStatePagerAdapter 将与 ViewPager 一起使用,因此 ViewPager 中的片段。
    猜你喜欢
    • 1970-01-01
    • 2013-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2012-04-02
    • 1970-01-01
    相关资源
    最近更新 更多