2015年3月15日 星期日

Android 開發(八十五) Lolipop Activity Transition ShareElement (part2)



第一眼看到上面的transition時,覺得這個transition沒什麼,使用shareelement就可以很輕鬆的做到,但是在使用了activity transition 一陣子之後,發現有一個很嚴重的問題,
如果前一個view是recyclerview,後面一個view也是recyclerview的話,
image移動的動畫是不會出現的.

不會動的原因是當shareelement的動畫開始執行的時候,view 還沒有被lay出來,這個問題一直找不到解決的辦法,直到最近意外的看到了幾個method之後,這個問題才出現的解決方案

postponeEnterTransition(); and startPostponedEnterTransition();
顧名思義,我們可以延遲transition的時間,並且自己決定何時要start transition,
不過在這邊會有一個比較tricky的地方,假設postpone之後沒有立刻call startPostponedEnterTransition,整個ui會呈現卡住的狀態,(例如 postpone之後又等httprequest回來才lay 圖,就會造成ui呈現卡住的樣子),所以假設要使用這類的transition,必須要先把這層需要的資料帶進來. 這樣才能在postpone之後立刻使用
startPostponedEnterTransition.

最後附上sample code https://github.com/nightbear1009/LolipopActivityTransition
請切換到branch recyclerviewTorecyclerview

沒有留言:

張貼留言