Android 片段不';t从后堆栈返回后刷新内容
我有一个Android 片段不';t从后堆栈返回后刷新内容,android,android-fragments,android-viewpager,Android,Android Fragments,Android Viewpager,我有一个zoomfragment,其中包含一个ViewPager。 此ViewPager有三个子项:LionFragment、LeopardFragment和TigerFragment,每个子项都可以请求事务调用新的ZooFragment 当名为zooA(带参数)的ZooFragment初始化时,ViewPager中的所有三个子项都显示内容。从任何子片段中,用户触摸将调用一个新的zoomfragment,称为zooB(当然,参数不同) 基于从子片段到ZooFragment的事务操作: 1.如果使
zoomfragment
,其中包含一个ViewPager
。
此ViewPager
有三个子项:LionFragment
、LeopardFragment
和TigerFragment
,每个子项都可以请求事务调用新的ZooFragment
当名为zooA
(带参数)的ZooFragment
初始化时,ViewPager
中的所有三个子项都显示内容。从任何子片段中,用户触摸将调用一个新的zoomfragment
,称为zooB
(当然,参数不同)
基于从子片段到ZooFragment
的事务操作:
1.如果使用transaction.replace()
,zooB
将为空,则zooB
中的所有三个子项均不显示内容,为空。在zooB
处,按导航中的硬键Back
,zooA
变为空
2.如果我使用transaction.add()
,zooB
不会为空,然后按下Back
按钮,zooA
变为空
在
ZooFragment
类中,我在onCreateView()
中加载数据,那么ViewPager
中的所有子片段变为空的原因是什么?请不要替换ViewPager中的片段,只显示(使用事务)在与ViewPager布局相同的任何其他布局中,该容器应为FrameLayout。此外,还设置了一个机制,以了解片段何时出现以及出现在视图中。然后从响应更新片段的实用程序请求新数据。我不认为在ViewPager中的所有片段的情况下会调用onDestroyed。
ViewPager中的片段是固定的,因此,在应用程序管理器想要销毁它之前,内容不会消失。与其尝试替换适配器中的片段,不如尝试提供一组不同的片段,并更改数据集,或者利用FrameLayout在“查看寻呼机”选项卡的当前片段上显示另一个片段
我的解决方案是:
您遗漏了最重要的部分:您在哪里使用新的
zooB
片段进行交易?@Luksprog通过触摸其中一个子片段中的视图
,例如,LionFragment
,到zooB
的交易从这里开始。我在前面的评论中不清楚,我对您放置zooB
的容器更感兴趣。我认为问题是由于不正确使用FragmentManager
(或错误使用)或容器问题造成的。一些关于这些事务的代码可能会有帮助。您没有提到任何关于FragmentManager的内容。如果在ZooFragment内部使用ViewPager,则应使用getChildFragmentManager()
处理ViewPager内部的片段,因为您正在处理嵌套片段。