Android控件架构
- 每个控件占用一块矩形区域
- 控件大致可分为:View和ViewGroup两类
- 通过ViewGroup,整个界面上的控件形成一个树形结构,即控件树
- 上层控件负责下一层控件的测量与绘制
Android界面的架构图:
- 每个Activity包含一个Window对象,Window对象通常由PhoneWindow实现
- PhoneWindow将一个DecorView对象设置为窗口的根View。
- DecorView作为窗口的顶层视图,封装了一些窗口操作的通用方法。
- DecorView将要显示的所有内容都呈现在PhoneWindow上,它上面所有的监听事件,都通过WindowManagerService来进行接收,并通过Activity对象来回调相应的OnListener。
- DecorView又被分为ContentView(setContentView)和TitleView
- ContentView是一个id为content的FrameLayout(比如,activity_main.xml整个布局就是放到这个FrameLayout中的)
- 用户如果使用
requestWindowFeature(Window.FEATURE_NO_TITLE)
设置全屏显示,则屏幕就只剩下ContentView了,所以requestWindowFeature()
方法要在setContentView()
之前调用才能生效