一、window介绍
什么是window
什么是view树?例如你在布局中给Activity设置了一个布局xml,那么最顶层的布局如LinearLayout就是view树的根,他包含的所有view就都是该view树的节点,所以这个view树就对应一个window。
- Activity、popupWindow、Toast、dialog、menu都有自己的view树,分别对应不同的window
- view树是window的存在形式,window是view树的载体
- window是view树的管理者,同时也是view树的载体。他是一个抽象的概念,本身并不存在,view树是window的表现形式
window的作用
window机制就是为了管理屏幕上的view的显示以及触摸事件的传递问题。
popupWindow、Toast、dialog、menu都是需要通过创建window来实现。
二、Window的相关属性
window的type属性
- 应用程序窗口:应用程序窗口一般位于最底层,Z-Order在1-99
- 子窗口:子窗口一般是显示在应用窗口之上,Z-Order在1000-1999
- 系统级窗口:系统级窗口一般位于最顶层,不会被其他的window遮住,如Toast,Z-Order在2000-2999。如果要弹出自定义系统级窗口需要动态申请权限。
Z-Order越大,window越靠近用户,也就显示越高,高度高的window会覆盖高度低的window,系统为我们三类window都预设了静态常量。
Window的flags参数
flag控制的范围包括了ÿ