最近在开发项目的时候,需要Android做到和IOS右滑关闭页面一样的效果。由于Android本身并没有这个滑动事件,所以需要我们自己来写一个关闭页面的滑动事件。
要想页面关闭后不继续遮挡下面的页面所以首先要设置页面的主题样式为透明,由于在一个项目中有的页面不能滑动关闭(比如主页面),所以在这里我们设置两个不同的主题样式
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="AppTheme.Slide" parent="@style/AppTheme">
<!--Required-->
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@style/AppTheme.Slide.Animation</item>
</style>
<style name="AppTheme.Slide.Animation" parent="@android:style/Animation.Activity">
<item name="android:activityOpenEnterAnimation">@anim/anim_slide_in</item>
<item name="android:activityOpenExitAnimation">@anim/anim_slide_out</item>
<item name="android:activityCloseEnterAnimation">@anim/anim_slide_in</item>
<item name="android:activityCloseExitAnimation">@anim/anim_slide_out</item>
</style>
如果需要滑动关闭则指定样式为AppTheme.Slide,否则知道样式为AppTheme(切记,样式需要在清单文件中引用)。
这里的AppTheme.Slide.Animation是用来定义滑动页面时的切换动画,以便增强体验