Android解析Window机制

本文详细介绍了Android中的Window机制,从window的基本概念、作用到Window的相关属性,包括type、flags、solfInputMode等。讲解了Window的添加过程、关键类如PhoneWindow、WindowManagerService的角色,以及Window与PhoneWindow的区别。同时对比了Activity、Dialog、PopupWindow和Toast的窗口实现方式。
摘要由CSDN通过智能技术生成

一、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控制的范围包括了ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值