Android中PopupWindow的使用是非常常见的弹窗形式,主要得益于其灵活的位置处理。
一、而最难受的地方在于outsideTouchable的处理。
如果你遇到了点击外部不消失
/ 点击外部后消失了但是点击事件透传到了Activity/Fragment
的控件中,可以参考一下步骤设置:
1. popupWindow.setBackgroundDrawable(new ColorDrawable(Color.Transparent))
2. popupWindow.setOutsideTouchable(true)
3. popupWindow.setFocusable(true) //focusable容易忽略
二、蒙层的处理
受大神同事的影响,目前处理蒙层相关的内容都是通过ViewOverlay
。
优点在于:蒙层想覆盖到宿主(Activity/Fragment)中的任意View均可以。
实现方式:我的,仅供参考
public class CustomPopupWidow extends PopupWindos{
`````````
忽略其余部分
`````````
/**
* @param layerView:宿主中需要覆盖的View
*/
public void showPw(View anchor,View layerView){
ViewOverlay overlay = layerView.getOverlay();
Drawable drawabl