私は単一の共有オブジェクトを持つ2つのアクティビティ、ImageView
を持っています。どちらの活動はAppCompatActivity
のサブクラスであり、彼らは同じテーマを共有:アクティビティトランザクションの後にonEnterAnimationComplete()が呼び出されない
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowContentTransitions">true</item>
<item name="android:windowTranslucentStatus">false</item>
<item name="android:windowExitTransition">@transition/transition_slide</item>
<item name="android:windowEnterTransition">@transition/transition_slide</item>
<!-- specify shared element transitions -->
<item name="android:windowSharedElementEnterTransition">
@transition/obj_transition</item>
<item name="android:windowSharedElementExitTransition">
@transition/obj_transition</item>
</style>
活動Aは次のように活動Bを呼び出します:アクティビティBで
Intent intent = new Intent(ActivityA.this, ActivityB.class);
ActivityOptionsCompat options = ActivityOptionsCompat
.makeSceneTransitionAnimation(ActivityA.this, view, "common_tag");
ActivityCompat
.startActivityForResult(ActivityA.this, intent, ACT_B_TAG, options.toBundle());
、私は上の簡単なウォブリングアニメーションを開始したいです同じ共有ImageView。 onCreate
メソッドでアニメーションを開始すると、結果はより前に開始され、のアクティビティ遷移が終了するため、結果はかなり醜いものになります。だから私は、アクティビティBにonEnterAnimationComplete()
メソッドを上書きする:問題がある
@Override
public void onEnterAnimationComplete() {
Log.d(TAG, "ANIMATION COMPLETE");
Animation anim = AnimationUtils.loadAnimation(this, R.anim.wobble);
findViewById(R.id.SharedView).startAnimation(anim);
}
を、何も起こりません。アクティビティと共有要素のトランジションは再生されますが、終了すると他のアニメーションは開始しません。 logcatの出力を確認すると、メソッドが呼び出されていないことがわかります。何かご意見は?
これは、関連するSOの質問のようです。 http://stackoverflow.com/questions/39488410/onenteranimationcomplete-not-called-api-21 – Kiki