上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
【知识导读】
2.1 Android屏幕元素的层次结构
一个Android应用程序最基本的功能单元是行为(Activity),即android.app.Activity类的一个对象。一个行为(Activity实例)可以做很多事情,但是它本身并不能使自己显示在屏幕上,而是借助于ViewGroup(视图组)和View(视图),这两个才是Android平台上最基本的用户界面表达单元。
对于Android应用程序中的一个屏幕,它的屏幕元素是按层次结构来描述的。要将一个屏幕元素层次树绑定在一个屏幕上显示,Activity会调用它的setContentView()方法并且传入这个层次树的根节点引用。当Activity被激活并且获得焦点时,系统会通知Activity并且请求根节点去计算和绘制树,根节点就会请求它的子节点去绘制它们自己。
每个树上的ViewGroup节点会负责绘制它的子节点。ViewGroup会计算它的有效空间,布局所有的子显示对象,并最终调用所有的子显示对象的Draw()方法来绘制显示对象。各个子显示对象可以向父对象请求它们在布局中的大小和位置,但最终决定各个子显示对象的大小和位置的是父对象。
大多数的界面控件都在android.view和android.widget包中,android.view.View是它们的父类。Android的原生控件一般是在res\layout下的XML文件中声明,然后在Activity文件中通过使用super.setContentView(R.layout.某布局Layout文件名)来加载Layout。在Activity类中获取控件的引用需要使用super.findViewById(R.id.控件的id),接着就可以使用这个引用对控件进行操作,例如添加监听、设置内容等。当然也可以通过代码动态地使用控件。