我有些东西让我难过。我有一个片段(片段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))。
关于我在哪里可以看的想法?
答案 0 :(得分:0)
我有一个带有ViewPager
的应用程序,它被添加到布局中,然后被另一个片段替换,并将更改添加到事务返回堆栈中。我在寻呼机的每个生命周期方法中都有Log
个语句。当按下“返回”按钮并将寻呼机返回到布局时,我的logcat
输出会显示为寻呼机调用的这些方法:onCreateView()
,onActivityCreated()
,onStart()
,{{ 1}}。请注意,当片段进入后端堆栈时,其视图将被销毁,但片段对象不被破坏,因此当片段从后端堆栈返回时,不会调用{{1} }。
此行为与Fragment Guide中的生命周期图一致。您应该可以使用onResume()
来表示您的寻呼机可见。我只能建议您将调试输出添加到寻呼机的生命周期方法并查看输出。如果您认为错了,请将其添加到您的问题的帖子中。还要指出您正在使用的片段事务方法。如果您使用onCreate()
代替onResume()
或hide()
,则生命周期事件会有所不同,您可能需要使用remove()
。