簡體   English   中英

包含ViewPager的片段的生命周期

[英]Lifecycle of Fragment that holds a ViewPager

我有些東西讓我感到難過。 我有一個片段(片段A),它的ViewPager包含三個片段(用於向左/向右滑動)。 因此,如果在另一個片段中,在onBackPressed()方法中,我進行了getFragmentManager()。popBackStack()調用,則片段A將再次可見(帶有子片段的ViewPager),這是所需的狀態。 但是,沒有使用片段A或ViewPager中的方法來指示片段A / ViewPager再次可見。

片段生命周期( http://developer.android.com/guide/components/fragments.html )中引用的所有片段方法均不應在“片段從后堆棧返回布局”時調用,也不應使用任何方法在OnPageChangeListener中調用(是的,我確實在片段A的onCreateView中調用viewPager.setOnPageChangeListener(this))。

關於我在哪里可以看到的想法?

我有一個帶有ViewPager的應用程序,該應用程序被添加到布局中,然后被另一個片段替換,並將更改添加到事務返回堆棧中。 我在尋呼機的每個生命周期方法中都有Log語句。 當按下“后退”按鈕並將分頁器返回到布局時,我的logcat輸出顯示了為分頁器調用的以下方法: onCreateView()onActivityCreated()onStart()onResume() 請注意,當片段進入后堆棧時,其視圖將被破壞,但片段對象不會被破壞,因此,當片段從后堆棧返回時,不會調用onCreate()

此行為與“ 片段指南”中的生命周期圖一致。 您應該能夠使用對onResume()的調用來表明您的尋呼機可見。 我只能建議您將調試輸出添加到尋呼機的生命周期方法中,然后查看輸出。 如果您認為這是錯誤的,請將其添加到問題的帖子中。 同時指出您正在使用哪種片段事務處理方法。 如果您偶然使用了hide()而不是remove()replace() ,那么生命周期事件就不同了,您可能需要使用onHiddenChanged()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM