一、Android PopupWindow的使用
1、PopupView的基本使用
①PopupWindow这个类是用来实现一个弹窗,可以使用任意布局的View作为其内容,这个弹出框是悬浮在当前的Activity之上的。
②使用步骤:
a.准备PopupWindow的布局View,即PopupWindow相当于一个布局View的容器。
View view = LayoutInflater.from(this).inflate(R.layout.popup,null)
b.初始化PopupWindow的高度宽度等(一般都是包裹内容),有多个构造函数,主要是设置popupWindow的大下。
PopupWindow popupWindow = new PopupWindow(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
c.设置PopupWindow的视图内容:(将布局文件装进PopupWindow的容器内)
popupWindow.setContentView(view)
d.popupWindow的一些属性的设置:
popupWindow.setBackgroundDrawable();
popupWindow.setOutsideTouchable(true/false);默认false
popupWindow.serAnimationStyle(R.style.AnimDown);
设置消失监听:
popupWindow.setOnDismissListener....
popupWindow的弹出方式:
popupWindow.showAsDropDown(...);
2、使用PopupWindow中遇到的问题:
①当两个按钮A,B均需要弹出PopupWindow并相互切换的时候,可能会出现当点击了A按钮,这个时候B的popupWindow消失,A按钮的PopupWindow并没有立马显示出来,需要再点击一下A,A的PopupWindow才显示出来。
②解决方案是:
在每个按钮弹出PopupWindow的时候,进行两外一个按钮的popUpWindow的空判断和是否显示的判断,手动地将其dismiss().
二、对于PopupWindow的动画的设置
1、使用PopupWindow.setAnimationStyle(R.style.AnimDown)
2、对Style的使用:
①在res下新进一个anim文件,里面主要放一些动画进入和动画出去的文件。
②在Style中进行配置,如下:主要用于指定动画的名称,以及映射动画的进入退出文件。
<style name="popwin_anim_style">
<item name="android:windowEnterAnimation">@anim/popupview_fade_in</item>
<item name="android:windowExitAnimation">@anim/popupview_fade_out</item>
</style>
③使用资源文件:通过R.style.popwin_anim_style