使用SwipeBackLayout设置windowIsTranslucent导致Activity动画失效

来源:互联网 发布:大数据时代质量管理 编辑:程序博客网 时间:2024/06/16 12:41

最近使用SwipeBackLayout做滑动返回,遇到了不大不小的问题就是Activity的启动方向都是从底部弹出本来感觉很好看,但是也很好奇怎么突然启动方向从底部弹出了呢。
做了一下测试<item name="android:windowIsTranslucent">false</item>
就可以正常从右边画出了,但是这时在侧滑返回就会发现底部时黑色的,于是我决定要改下这个问题。

  1. 手动设置Activity的启动动画于是在style中设置但是发现没起作用因为时这样写的
    <style name="animation_translucent_translate" parent="@android:style/Animation.Activity">
    <item name="@android:activityOpenEnterAnimation">@anim/activity_right_in</item>
    <item name="@android:activityCloseExitAnimation">@anim/activity_right_out</item>
    </style>

  2. 通过overridePendingTransition设置启动动画可以

   startActivity(fromClass, toClass, null);        this.overridePendingTransition(R.anim.activity_right_in, 0);

这样当时就解决了,但是越想越不对为什么在style中设置不可以呢,后来查了下资料发现可以继承Animation.Translucent

   <style name="animation_translucent_translate" parent="@android:style/Animation.Translucent">        <item name="@android:activityOpenEnterAnimation">@anim/activity_right_in</item>        <item name="@android:activityCloseExitAnimation">@anim/activity_right_out</item>    </style>

心想这样可以了吧,但是运行之后发现不是从底部滑出了,但也不是从右边滑出,这可怎么办所有的方法都用完了,最后发现在第一个Activity中设置

<item name="android:windowIsTranslucent">false</item>

这样就可以正常使用了,因为底部的第一个Activity本来就不需要滑动返回。

1 0
原创粉丝点击