需要實現一個效果:
A_Activity首先出現,顯示B_Activity,A需要保持不動,B從屏幕下方覆蓋到A的上層。
B退出時,再次從下方收回,收回的時候A的內容逐漸顯示。
給人的感覺就像是B覆蓋在A上面一樣。
我在實現時,B使用style:
<style name="windowfloat">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
overridePendingTransition動畫:
bottom_in.xml
<translate android:fromYDelta="100%p" android:toYDelta="0%p" android:duration="300"/>
bottom_out.xml
<translate android:fromYDelta="0%p" android:toYDelta="100%p" android:duration="300"/>
雖然B在顯示時是從下面推上去的,但是在按返回時,沒有動畫。
在A_Activity的startActivity()後面調用 overridePendingTransition(int animOut, int animIn); 同時在B_Activity的finish()也調用 overridePendingTransition(int animOut, int animIn); 在res/anim的目錄下實現兩個動畫xml即可