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();
}
}
另一件事提的是,当我删除返回变换我没有这个问题。