1. 程式人生 > >Android:去掉系統自帶的Activity跳轉動畫,跳轉無動畫,返回無動畫

Android:去掉系統自帶的Activity跳轉動畫,跳轉無動畫,返回無動畫

首先,我需要在Activity跳轉沒有動畫,返回的時候也沒有動畫,排除fragment。在網上參考了其他的部落格,都只是實現了跳轉無動畫,並沒有實現返回無動畫。

<item name="android:windowAnimationStyle">@style/noAnimation</item>  
    <item name="android:windowNoTitle">true</item>  
</style>  
<style name="Theme" parent="android:Theme">  <pre name="code" class="java"><style name="noAnimation">  
        <item name="android:activityOpenEnterAnimation">@null</item>    
        <item name="android:activityOpenExitAnimation">@null</item>   
        <item name="android:activityCloseEnterAnimation">@null</item>   
        <item name="android:activityCloseExitAnimation">@null</item>  
        <item name="android:taskOpenEnterAnimation">@null</item>   
        <item name="android:taskOpenExitAnimation">@null</item>  
        <item name="android:taskCloseEnterAnimation">@null</item>  
        <item name="android:taskCloseExitAnimation">@null</item>    
        <item name="android:taskToFrontEnterAnimation">@null</item>  
        <item name="android:taskToFrontExitAnimation">@null</item>   
        <item name="android:taskToBackEnterAnimation">@null</item>  
        <item name="android:taskToBackExitAnimation">@null</item>
    </style>  
<activity android:name=".HomeActivity"  
          android:label="@string/app_name"  
          android:theme="@style/Theme"> 

經測試出現無動畫,但返回還是有動畫。

後通過查閱,可以通過overridePendingTransition(0,0);去控制。

程式碼如下:

在準備跳轉後新增。

Intent intent = new Intent(getActivity(),SearchListActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(0, 0);
在返回的當前Activity介面onPause方法中新增就可以了。
@Override
protected void onPause() {
	overridePendingTransition(0,0);
	super.onPause();
}

就可以實現跳轉過去無動畫,返回無動畫了。

參考以下部落格:

http://blog.csdn.net/joiningss/article/details/7057870
http://www.cnblogs.com/Jaylong/archive/2012/08/30/activity.html