包含ViewPager的片段的生命周期

时间:2015-07-01 21:45:17

标签: android android-fragments android-viewpager fragment-lifecycle

我有些东西让我难过。我有一个片段(片段A),其中ViewPager包含三个片段(用于向左/向右滑动)。因此,如果在另一个片段中,在 onBackPressed()方法中,我执行 getFragmentManager()。popBackStack()调用,片段A将再次可见(使用ViewPager的子片段)这是所需的状态。但是,没有方法使用片段A或在ViewPager中指示片段A / ViewPager再次可见。

片段生命周期(http://developer.android.com/guide/components/fragments.html)中引用的片段方法中没有一个应该在"片段从后栈返回布局时调用#34;或者在OnPageChangeListener中调用的任何方法(是的,我在Fragment A的onCreateView中调用viewPager.setOnPageChangeListener(this))。

关于我在哪里可以看的想法?

1 个答案:

答案 0 :(得分:0)

我有一个带有ViewPager的应用程序,它被添加到布局中,然后被另一个片段替换,并将更改添加到事务返回堆栈中。我在寻呼机的每个生命周期方法中都有Log个语句。当按下“返回”按钮并将寻呼机返回到布局时,我的logcat输出会显示为寻呼机调用的这些方法:onCreateView()onActivityCreated()onStart(),{{ 1}}。请注意,当片段进入后端堆栈时,其视图将被销毁,但片段对象被破坏,因此当片段从后端堆栈返回时,不会调用{{1} }。

此行为与Fragment Guide中的生命周期图一致。您应该可以使用onResume()来表示您的寻呼机可见。我只能建议您将调试输出添加到寻呼机的生命周期方法并查看输出。如果您认为错了,请将其添加到您的问题的帖子中。还要指出您正在使用的片段事务方法。如果您使用onCreate()代替onResume()hide(),则生命周期事件会有所不同,您可能需要使用remove()