项目需求:PopupWindow弹出,window外可以点击并且window消失,但是点击事件不可作用于外部的控件之上,并且window中还有编辑框,所以需要键盘弹出。捣鼓了半天虽然没有完成需求,不过大致搞清楚了相关的属性变化,写下来做个记录。
穿透:点击window外围时,点击事件会传递到window下面的页面上,进行触发。
主要有下面两个属性控制
第一种:isOutsideTouchable=false isFocusable=false
无法弹出键盘
点击外部window不会消失
外部点击事件会穿透
第二种:isOutsideTouchable=true isFocusable=false
无法弹出键盘
点击外部window会消失
外部点击事件会穿透
第三种:isOutsideTouchable=false isFocusable=true
键盘可以弹出
点击外部window会消失
外部事件不会穿透
第四种:isOutsideTouchable=true isFocusable=true
键盘可以弹出
点击外部window会消失
外部事件不会穿透
总结:isOutsideTouchable控制点击window外部是否会使window消失,true代表会消失
isFocusable为true时,可以使用键盘,为false时,点击window外部会穿透事件,那么键盘和穿透不能共存。