之前在实现activity 滑动退出时,需要用到透明activity。结果在设置透明activity时遇到了很多的小问题,问题虽小,解决起来也很快,但还是有必要单拎出来说一下,免得其他小伙伴也掉进去。
首先先来看一下怎样设置透明activity:
1 | <item name="android:windowIsTranslucent">true</item> |
看上去好像第三句是关键,其实第一句也极其重要。不设置windowIsTranslucent
,整个透明activity会成为黑色。colorBackgroundCacheHint
则可以清除背景颜色的缓存。
接下来说说坑的事。
在设置了透明背景后,activity的进入退出动画会消失,解决办法是设置<item name="android:windowAnimationStyle"> @android:style/Animation.Translucent </item>
。这个时候坑就来了,Translucent动画在应用里面打开和退出activity都是正常的,但是在退出应用时,会依然是这么个动画,这个就很不舒服了。而换其他的动画或者是自己定义的动画,在应用内是没有动画的。最后是在activity中使用代码解决问题。
1 | overridePendingTransition(R.anim.anim_enter,R.anim.anim_exit); |