popupwindow设置动画效果,不起作用。
今天在公司开发过程中遇到一个问题:为什么我使用popupwindow并给其加上动画效果时不起作用。虽然最后意识到可能是动画效果冲突的原因所导致的,但没想到怎么兼顾两者的解决方法。
很多网友分享各式各样的错误解决方法,但可惜都没能解决我的问题。最后是我给力的同事帮我解决了这样的问题。哈哈。
针对这里,我的Activity在配置时时设置了
android:theme="@style/AppTheme.NoActionBar.SwipeBack
这里面包含一句代码:
<item name="android:windowIsTranslucent">true</item>
设置为半透明,但是为什么设置为半透明后会出现这种问题我暂时也没搞懂。希望能够找到根本原因并且记录下来分享给大家。
然后我把它删掉之后果然popupwindow之前设置的动画效果正常显示了。然后问题也来了,我两个都想兼顾到怎么办?
解决方法:
修改style文件
《修改过后的》
<style name="popwin_anim_style">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowEnterAnimation">@anim/popup_enter</item>
<item name="android:windowExitAnimation">@anim/popup_exit</item>
</style>
《原本存在冲突的》
<style name="popwin_anim_style">
<item name="android:windowEnterAnimation">@anim/popup_enter</item>
<item name="android:windowExitAnimation">@anim/popup_exit</item>
</style>
不同的地方就是又加了设置了半透明的属性。至于为什么我也懵逼。网上也有很多这个半透明属性引发的问题,不过我还没看懂,哈哈。得抽时间弄懂这个了。
困扰了一下午的原因,希望对大伙也有用。
修正药液:
大意了,最通过上面的修改popupwindow的弹出以及退出都有了动画效果,但是并不是自己设置预期的效果。所以又做如下修改:
<style name="AppTheme.NoActionBar.SwipeBack">
<item name="android:windowIsTranslucent">true</item>
</style>
<style name="AppTheme.NoActionBar.SwipeBack.popup">
<item name="android:windowEnterAnimation">@anim/popup_enter</item>
<item name="android:windowExitAnimation">@anim/popup_exit</item>
</style>
然后activity跟popupwindow都设置为AppTheme.NoActionBar.SwipeBack.popup
这样就搞定了。