当前位置:天才代写 > tutorial > 安卓教程 > Android 控件架构

Android 控件架构

2021-02-15 10:13 星期一 所属: 安卓教程 浏览:784

  假如说Android上的app是一个平凡而不平庸的人得话,那麼佛要金装马靠鞍,那麼控制便是把app打扮的花枝招展的“衣服裤子”。那麼安卓系统的控制到底是怎样构架,也是怎样3D渲染的了。

  不论是哪些控制,在Android中控制仅有二种,一种便是View,另一种是ViewGroup。ViewGroup控制组,一个控制的宝盒,能够包括各式各样的控制组,它不但可以包括控制还可以管理方法着控制。根据ViewGroup,全部控制就由上而下的产生了树结构,即大家一般 常说的控制树;父控制承担相对子控制的绘图与精确测量,并向其传送互动事情。安卓手机系统如何准确的寻找每一个控制?只必须启用findViewbyid的方式就可以依照深度优先的方式寻找每一个控制了。在每一个控制树最顶部,都站起了一个Viewparent目标,这一目标也是这颗控制树的关键,全部的互动管理方法事情全是由这一大大的承担统一分配和生产调度,进而起这一个总体宏观经济政策的实际效果。一个控制树构架如下图所示:

  做了Android开发设计都了解,要使一个activity表明相对的合理布局文档,都务必要setContentView。大家需看一下setContentView身后究竟发生什么事,Android也是如何把其3D渲染出去的了。要解释这种难题,大家還是要掌握Android的页面框架图。实际的框架图如下图所示:

  根据图中所显示,我们可以得到那样的结果。

  ①每一个activity都是有一个window目标。

  ②而每一个window目标一般 是由PhoneWindow来完成。

  ③每一个PhoneWindow目标包括DecorView这一根主视图目标,将其主视图展现全是根据这一目标表明到PhoneWindow上。

  ④而DecorView被一分为二,一个是TitleView,一个ContentView,TitleView表明相对的题目,ContentView表明实际合理布局,这种应当大伙儿很了解。

  那样构架还可以创建一个上文提及的主视图树,这颗主视图树成长为这一模样:

 

  那样控制树,可以帮大家解释那样一个难题为何requestWindowFeature()一定要在setContentView以前启用才可以见效。它是因为TitleBar下边才算是ContentView,在ContentView以后设定,这时候,只有有ContentView。当程序流程在oncreate方式启用setcontentView后会启用onResume方式,这时系统软件会把全部DecorView加上到PhoneWindow中,最后将主视图表明出去。

 

    关键字:

天才代写-代写联系方式