我正在玩棒棒糖sceneTransitionAnimations
.
为了让它发挥作用,你需要实施getWindow().setExitTransition()
+ getWindow().setReenterTransition()
在调用活动的onCreate
,
and getWindow().setEnterTransition()
+ getWindow().setReenterTransition()
在被调用的活动中onCreate
.
然后,当你打电话时startActivity
你必须通过一个Bundle
到您通过调用获得的函数ActivityOptions.makeSceneTransitionAnimation(getActivity()).toBundle()
.
这很好用。但是我需要使用开始一项活动startActivityForResult
。该函数只需要一个Intent
and a requestCode
, 但不是Bundle
。使用以下方法将捆绑包放入意图中putExtras
不工作。
当我想使用时,如何让这些漂亮的棒棒糖过渡发挥作用startActivityForResult
?
当我被要求提供代码时进行编辑:
我在一个片段中,我有一个项目列表。单击某个项目后,我会开始另一个活动。
Intent intent = new Intent(context, otherActivity.class);
Bunde bundle = null;
if (android.os.Build.VERSION.SDK_INT >= 21)
bundle = ActivityOptions.makeSceneTransitionAnimation(getActivity()).toBundle();
现在有两个区别。这个有效:
getActivity().startActivity(intent, bundle);
片段不提供此功能,因此我必须使用其父活动 - 因此getActivity()
.
这个有not work:
intent.putExtras(bundle);
startActivity(intent);