安卓 PopupWindow 的 2 个坑
Posted 陈蒙_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓 PopupWindow 的 2 个坑相关的知识,希望对你有一定的参考价值。
文章目录
手势不透传
在 PopupWindow 展示的情况下,必须要先将其关闭才能继续后续动作,比如滑动列表等。
而我们期待的效果是关闭 PopupWindow 的同时可以滑动列表,就像微信朋友圈那样:
遮盖导航栏
对于带有虚拟导航栏的手机,PopupWindow 的入场动画会遮盖虚拟导航栏。
入场动画实现方式:
PopupWindow.setAnimationStyle(R.style.DragDelWindowAnim);
style.xml:
<style name="DragDelWindowAnim">
<item name="android:windowEnterAnimation">
@anim/drag_del_pic_win_anim_in
</item>
<item name="android:windowExitAnimation">
@anim/drag_del_pic_win_anim_out
</item>
</style>
drag_del_pic_win_anim_in.xml
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="300"
android:fromYDelta="100%p"
android:startOffset="0"
android:toYDelta="0" />
drag_del_pic_win_anim_out.xml
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="300"
android:fromYDelta="0"
android:startOffset="0"
android:toYDelta="100%p" />
而我们期待的效果是从虚拟导航栏底部出现,就像微信朋友圈发状态那样:
上述两个坑,目前最好的解决方案是放弃 PopupWindow,转而使用 View。
但是 View 的缺陷也很明显,即展示位置的局限性。
如果有大神知道如何使用 PopupWindow 本身又能解决上述问题,请不吝指教。
以上是关于安卓 PopupWindow 的 2 个坑的主要内容,如果未能解决你的问题,请参考以下文章
PopupWindow在安卓7.0及7.1系统上位置显示异常
PopupWindow在安卓7.0及7.1系统上位置显示异常