我正在使用 FragmentStatePagerAdapter 为对象列表创建视图寻呼机。每个页面都是一个片段。
但是,在该页面上,我还使用片段来显示其他一些数据。
这样做时我遇到了问题。我想知道我可以把片段放在片段中。或者任何其他解决方案来解决这个问题?
我正在使用 FragmentStatePagerAdapter 为对象列表创建视图寻呼机。每个页面都是一个片段。
但是,在该页面上,我还使用片段来显示其他一些数据。
这样做时我遇到了问题。我想知道我可以把片段放在片段中。或者任何其他解决方案来解决这个问题?
当前的片段实现不支持嵌套片段(Android 工程师 Diane 也在这里回答了这个问题:
当前不支持嵌套片段。试图将一个片段放在另一个片段的 UI 中会导致未定义且可能会损坏的行为。
但这并不意味着它不可行 - 它可以实现,但是需要编写更多代码而不仅仅是片段。其他用户在同一线程中有评论:
我通过扩展 FragmentActivity、FragmentManager 和 FragmentTransaction 来管理它。基本前提是在我的活动中扩展 DeferringFragmentActivity,提供相同的 api,因此无需更改其他代码。当我调用getFragmentManager 时,我得到一个DeferringFragmentManager 实例,当我调用beginTransaction 时,我得到一个DeferredTransaction。此事务使用调用的方法和参数存储 POJO。当调用 commit 时,我们首先查找任何挂起的 DeferredTransactions。提交所有事务后,我们开始一个真正的事务并使用 args 运行所有存储的方法
一般来说 - 除非你绝望,否则只需重新设计你的布局。
片段不能容纳其他片段。 不支持(状态错误)
我在项目的片段中使用了片段。我最终做的方式是通过代码添加这些内部片段并使用附加到活动的片段作为另一个片段的“代理”,因此在片段的 oncreateview() 上实例化内部片段, ondestroyview() 你删除内部碎片等等。