overridePendingTransition的使用

Android中不同Activity之間的切換是不可避免的事情,Android中提供了一個方法來解決這個問題,即overridePendingTransition(A,B)函數

此方法在startActivity()或者是finish()後調用,例如

startActivity(new Intent(MainActivity.this,SecondActivity.class));
overridePendingTransition(enterAnim, exitAnim)

overridePendingTransition有兩個參數,第一個參數(enterAnim)是作用於SecondActivity 的進入屏幕可見區域效果,第二個參數(exitAnim)是作用於當前 Activity 離開屏幕可見區域效果

打開Activity

MainActivity點擊按鈕打開SecondActivity

startActivity(new Intent(MainActivity.this,SecondActivity.class));
overridePendingTransition(R.anim.slide_in_bottom, R.anim.slide_out_bottom);

slide_in_bottom.xml 從底部滑到頂部

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:fromYDelta="100%"
        android:toYDelta="0"
        android:duration="3000"/>
</set>

slide_out_bottom.xml 從頂部滑出底部

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:fromYDelta="0"
        android:toYDelta="100%"
        android:duration="3000"/>
</set>

在這裏插入圖片描述
從這張圖可以看出MainActivity打開SecondActivity時,SecondActivity是從底部滑到頂部(執行了slide_in_bottom),而MainActivity是從頂部滑出底部(執行了slide_out_bottom)

關閉Activity

SecondActivity中有個按鈕,點擊關閉SecondActivity,打開上一個MainActivity

finish();
overridePendingTransition(R.anim.slide_in_bottom, R.anim.slide_out_bottom);

在這裏插入圖片描述
從這張圖可以看出SecondActivity關閉時,SecondActivity是從頂部滑出底部(執行了slide_out_bottom),而MainActivity是從底部滑到了頂部(執行了slide_in_bottom)

總結

不要被這倆參數搞暈了,其實很好理解,第一個參數就是進入時的動畫,第二個參數就是離開時的參數。不管是startActivity()還是finish()時使用,都遵循這個原則

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章