参考原文Android PopupWindow用法解析进行学习,通过实例及PopupWindow源码分析了PopupWindow的使用。文章最后的“补充Case: 弹窗不消失,但是事件向下传递”很赞。
不过,源码已经发生了变化,文章中提到的PopupViewContainer类,在目前的源码(Android6.0)中使用的是PopupBackgroundView和PopupDecorView共同完成的。
而在6.0版本的PopupWindow的preparePopup方法中,无论是否setBackgroundDrawable,最终都要创建PopupDecorView实例来生成视图,而PopupDecorView实现了onTouchEvent,所以用6.0版本开发,运行在6.0的设备上,无论是否setBackgroundDrawable,点击popupWindow之外的区域,popupWindow都会消失。
源码截图:
PopupWindow.preparePopup方法:
PopupDecorView类:
您可能感兴趣的文章:Android Popupwindow弹出窗口的简单使用方法Android PopupWindow使用方法小结Android中使用PopupWindow 仿微信点赞和评论弹出Android 使用PopupWindow实现弹出更多的菜单实例详解Android popupwindow简单使用方法介绍Android组件popupwindow使用方法详解Android自定义弹出窗口PopupWindow使用技巧android使用PopupWindow实现页面点击顶部弹出下拉菜单Android PopupWindow使用实例PopupWindow使用方法详解