Search code examples
javaandroidanimationandroid-intentandroid-activity

Animation transition between activities using FLAG_ACTIVITY_CLEAR_TOP


In my android app, I'm making a method that pop all activities and bring up the first activity.

I use this code:

Intent intent = new Intent(this, MMConnection.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
this.startActivity(intent);

As I noticed that the transition was still a left to right animation, does someone know if there is a way to change system animation when starting an activity?

Actually, I'd ideally like to have a right to left transition (like when the return button is tapped)

thanks for help!


Solution

  • CoolMcGrr is right, you want to use overridePendingTransition(int enterAnim, int exitAnim).

    To specifically get the standard "back button" transition, I use these as the enterAnim and exitAnim transitions:

    push_right_in.xml

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <translate android:fromXDelta="-100%p" android:toXDelta="0" android:duration="@android:integer/config_shortAnimTime"/>
        <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="@android:integer/config_shortAnimTime" />
    </set>
    

    push_right_out.xml

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <translate android:fromXDelta="0" android:toXDelta="100%p" android:duration="@android:integer/config_shortAnimTime"/>
        <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="@android:integer/config_shortAnimTime" />
    </set>