4

我有一个ZooFragment包含一个ViewPager. 这ViewPager有三个孩子:LionFragmentLeopardFragmentTigerFragment,这些孩子中的每一个都可以请求事务以调用新的ZooFragment

当一个ZooFragment被调用的zooA(带参数的)被初始化时,所有三个孩子都在ViewPager显示内容。从任何子片段中,用户触摸将调用一个新的ZooFragment被调用zooB(当然,使用不同的参数)。

基于从子片段到的事务操作ZooFragment

1.如果我使用transaction.replace(),zooB将是空白的,所有三个孩子都zooB显示没有内容,为空。在,从导航zooB按硬键,变为空。BackzooA

2.如果我使用transaction.add()zooB不会为空,Back然后按下按钮,变为zooA空。

ZooFragment课堂上,我确实在加载数据onCreateView(),那么为什么所有子片段都为ViewPager空?

4

1 回答 1

0

请不要替换 ViewPager 中的片段,只需在与 ViewPager 相同布局中包含的任何其他片段中显示(使用事务),并且该容器应该是 FrameLayout。还设备一种机制来知道何时以及什么片段进入视野。然后从响应更新片段的实用程序请求新数据。我认为在 ViewPager 中的所有片段的情况下都不会调用 onDestroyed。ViewPager 中的 Fragment 是固定的,所以应该直到应用程序管理器想要销毁它时才会有内容。与其尝试替换适配器中的 Fragment,不如尝试给不同的 Fragment 集并更改 notifyDataSet,或利用FrameLayout 以在视图寻呼机选项卡的当前片段上显示另一个片段。

有我的解决方案有效:

在 Fragment 级别与 ViewPager 一起应用的滑动手势,默认滑动禁用

于 2013-11-20T12:58:38.280 回答