PopWindow使用透明的View却出现布局为黑色的情况

来源:互联网 发布:nginx http2配置 编辑:程序博客网 时间:2024/05/22 18:55

问题:
popwindow使用的是一个透明的布局,却出现布局为黑色的情况;

原因
以下两种方式都是让用户点击PopWindow其他地方或者返回键,PopWindow消失,就是这里出现的问题。

方式一:
1.用这种会出现设置的布局出现背景为黑色的问题
2.设置背景不为空

setBackgroundDrawable(new BitmapDrawable());

方式二:
1.解决布局出现背景为黑色的问题
2.推荐用这种,设置背景不为空但是完全透明。

mPopWindow.setBackgroundDrawable(new ColorDrawable(0x00000000));

不明白为什么一个背景会影响点击事件?
原因:如果有背景,则会在contentView外面包一层PopupViewContainer之后作为mPopupView,如果没有背景,则直接用contentView作为mPopupView。
而这个PopupViewContainer是一个内部私有类,它继承了FrameLayout,在其中重写了Key和Touch事件的分发处理。

1 0
原创粉丝点击