0
我有一個共享的元素添加轉場的片段,像這樣錯誤片段
currentFragment.setEnterTransition(TransitionInflater.from(context).inflateTransition(android.R.transition.fade));
currentFragment.setExitTransition(TransitionInflater.from(context).inflateTransition(android.R.transition.fade));
Transition transition = TransitionInflater.from(context).inflateTransition(android.R.transition.slide_right);
transition.setDuration(context.getResources().getInteger(R.integer.fragment_transition_duration));
然後
targetFragment.setSharedElementEnterTransition(TransitionInflater.from(context).inflateTransition(R.transition.change_image_transform));
targetFragment.setEnterTransition(TransitionInflater.from(context).inflateTransition(android.R.transition.fade));
targetFragment.setReturnTransition(transition);
我看到的問題是,一旦我瀏覽到如果我點擊後退按鈕 - 重複和非常快地調用默認的onBackPressed(),則活動會將錯誤的片段顯示爲可見。當我點擊屏幕時,點擊事件轉到正確的片段(可能在可見片段下面),但我看不到正確的片段。
如果我更慢點擊後退按鈕,我會得到正確的行爲。有沒有人遇到過這樣的情景?
編輯:這是什麼FragmentActivity做
/**
* Take care of popping the fragment back stack or finishing the activity
* as appropriate.
*/
public void onBackPressed() {
if (!mFragments.getSupportFragmentManager().popBackStackImmediate()) {
supportFinishAfterTransition();
}
}
另一件事提的是,當我刪除返回變換我沒有這個問題。