How to Switch Activity Without Animation in Android

How to switch activity without animation in Android?

You can create a style,

 <style name="noAnimTheme" parent="android:Theme">
<item name="android:windowAnimationStyle">@null</item>
</style>

and set it as theme for your activity in the manifest:

   <activity android:name=".ui.ArticlesActivity" android:theme="@style/noAnimTheme">
</activity>

You can also define a style to specify custom entry and exit animations.
http://developer.android.com/reference/android/R.attr.html#windowEnterAnimation

How to go to other activity without effect (as quiet as possible)?

You can use intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);

Doc says -

public static final int FLAG_ACTIVITY_NO_ANIMATION

If set in an Intent passed to Context.startActivity(), this flag will prevent the system from applying an activity transition animation to go to the next activity state.

This doesn't mean an animation will never run -- if another activity change happens that doesn't specify this flag before the activity started here is displayed, then that transition will be used. This flag can be put to good use when you are going to do a series of activity operations but the animation seen by the user shouldn't be driven by the first activity change but rather a later one.

So simply do,

 Intent masuk=new Intent(getApplicationContext(),Destination.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(masuk);

How to open Android Activitys without animation

You can try to use a Flag with your Intent as follows:

Intent intent = new Intent(Activity1.this, Activity2.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(intent);

But keep in mind:

If set in an Intent passed to Context.startActivity(), this flag will prevent the system from applying an activity transition animation to go to the next activity state. This doesn't mean an animation will never run -- if another activity change happens that doesn't specify this flag before the activity started here is displayed, then that transition will be used. This flag can be put to good use when you are going to do a series of activity operations but the animation seen by the user shouldn't be driven by the first activity change but rather a later one.

Or you can define a custom animation in your style with @android:style/Animation.Activity parent as @null parameter for the animations that you do not want.

How to stop animations between switching activities?

You're calling finish() and then trying to override the animation by adding flags to the intent. You have to add the flag to the intent before you use it in startActivity(). Try this instead of your code:

Intent intent = new Intent(this, SecondActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(intent);
overridePendingTransition(0,0); //0 for no animation
finish();

Or:

Intent intent = new Intent(this, SecondActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
overridePendingTransition(0,0); //0 for no animation

If for some reason Inteng.FLAG_ACTIVITY_CLEAR_TOP or finish() aren't working for you, try to set android:noHistory=true for your <activity> in Manifest.xml. See here.

Disable Transition Animation Between Activities

if you want to do it for all activities then do it in this way:

switching activities without animation

Just assign style with no animation to each activity in manifest.

Or through code do it in this way:

Disable activity slide-in animation when launching new activity?

Change Switch state without animation

Call jumpDrawablesToCurrentState() to skip the animation

switchCompat.setChecked(true);
switchCompat.jumpDrawablesToCurrentState();


Related Topics



Leave a reply



Submit