2017-10-06 706 views
1

我已經將支持庫從24.2.1更新到26.0.0,並且我注意到了一個差異,我不確定它是一個錯誤還是一個明確的決定。Android onCreateAnimation生命週期

我使用的片段與過渡自定義動畫,並在老24.2.1生命週期是這樣

onAttach() 
onCreate() 
onCreateView() 
onCreateAnimation() 
onStart() 
onResume() 

但在26.0.0把它改成

onAttach() 
onCreate() 
onCreateView() 
onStart() 
onResume() 
onCreateAnimation() 

對於某些原因我不知道,並通過支持庫發佈筆記看,我沒有發現任何可能與此有關的東西。唯一可能相關的是片段的重新排序,但事件將該標誌設置爲true或false,沒有任何效果。

現在我的動畫有點胡思亂想,因爲onResume()期望在onAnimationCreated()上設置一些標誌以相應地執行操作。

高興的幫助,

+0

創建了一個GitHub的項目來演示這個問題 https://github.com/smlima/createanim/ –

+0

創建錯誤報告的某個時候回來,還在等待他們的答覆 –

回答

0

根據Android文檔約Fragment

onCreateAnimation(int transit, boolean enter, int nextAnim) 

不來下的Fragment生命週期狀態。這只是Fragment類的常規方法,當片段加載動畫時會調用該方法。 關於onCreateAnimation,請參閱this。它說

Animation onCreateAnimation (int transit, boolean enter, int nextAnim)
當片段加載動畫調用。請注意,如果使用Animator資源而不是Animation資源調用setCustomAnimations(int,int),則nextAnim將成爲動畫資源。

我相信,這意味着當您設置自定義動畫到你的片段可以是前triggred onStart方法,即之前的片段是可見的或之後的方法被調用。

+1

我知道這種方法是不是生命週期的一部分,但它是一樣的,因爲這個方法總是被調用,現在它改變了。在onResume()之前調用它是有道理的。只是發現這種差異,並希望確保它不是一個錯誤或類似的東西。現在我會更新我的代碼,以獨立於該方法... 謝謝 –