Android开发Android知识手机移动程序开发

Android 控件架构view和ViewGroup

2017-01-24  本文已影响123人  把重要的事情做到极致

Android 控件架构

控件架构,咋一听,很高大上的样子,如果深入去了解其实却是很高大上哈 !! 今天我就简单的写个总结,一方面增强自己的理解。另一方面也可以给不懂的童鞋一个参考哈!若有分析的不对,欢迎指正和拍砖~

控件和控件树是什么鬼

架构又是什么鬼

这里的架构指的是UI界面架构。简单的讲:Activity本身是没有界面的,它只提供一个窗口,开发人员通过Activity提供的接口setContentView(View)将UI放到Activity所创建的窗口上,这个过程中各个角色组成UI界面架构。

UI界面架构图UI界面架构图

每个Activity都包含一个Window对象,window对象通常由PhoneWindow实现,PhonWindow将DecorView作为整个应用窗口的根View,DevorView将具体要显示的内容呈现在phoneWindow上,在显示上它将屏幕分为了两部分 TitleView 和 ContentView. TitleView就是 actionBar部分,ContentView它是一个ID为content的Framelayout,activity_main.xml就被设置在这样一个Framelayout里面。

细说DecorView

再来仔细探讨下DecorView结构


标准视图树标准视图树

DecorView的第二层封装一个LinearLayout作为ViewGroup,这一层的布局结构会根据用户设置的参数进行布局,默认的情况是上面TitleBar 下面是ContentView 。但是我们也可以选择全屏模式通过设置requestWindowFeature(Window.FEATURE_NO_TITLEBA)来隐藏titlebar。

当调用SetcontentView()方法后,ActivityManagerService就会调用Onresume()方法将整个DecorView添加到PhoneWindow中去,并让其显示出来,从而完成最终的界面绘制。

本文参考群英传而总结,有不对地方欢迎指正。。

上一篇下一篇

猜你喜欢

热点阅读