2017-02-16 87 views
1

我有兩個活動:AB。兩者都有圖像的ViewPager。自定義活動共享轉換

存在與「當前」圖像共享元素的共享活動轉換。例如,如果用戶滾動到第三個圖像,則共享元素名稱爲image_2

要執行的過渡只需要調用:

ActivityCompat.startActivityForResult(activity, intent, requestCode, 
     ActivityOptionsCompat.makeSceneTransitionAnimation(activity, sharedElements) 
      .toBundle()); 

這完美的作品。

我想爲A(調用者活動)添加自定義退出轉換。後者應該淡化另一種觀點。

我該如何實現這個目標?

回答

0

您可以使用以下方法指定退出,重新輸入,輸入和返回轉換。

getWindow().setEnterTransition(getEnterTransition()); 
getWindow().setReturnTransition(getReturnTransition()); 
getWindow().setExitTransition(getExitTransition()); 
getWindow().setReenterTransition(getReenterTransition()); 

當然,在你的情況下,你只需要設置退出轉換。但我之所以包含這一點,是因爲你可能想要設置從你的調用者活動重新輸入轉換。

要回答你的問題(淡出)您可以使用漸變過渡這樣

@SuppressWarnings("NewApi") 
private Transition getExitTransition() { 
    Fade fadeOut = new Fade(Fade.OUT); 
    fadeOut.excludeTarget(android.R.id.navigationBarBackground, true); 
    fadeOut.excludeTarget(android.R.id.statusBarBackground, true); 
    fadeOut.setInterpolator(new FastOutLinearInInterpolator()); 
    fadeOut.setDuration(150); 
    return fadeOut; 
} 

你可能會注意到我排除的導航欄和狀態欄,它在那裏,以防止white blinking problem.

你去那裏, 我希望這有幫助。

+0

我已經試過了。它不起作用。 – fran