黑马程序员技术交流社区

标题: 自定义Layout xml文件转换成View对象和Activity关联的实现 [打印本页]

作者: 337091921    时间: 2013-4-27 02:10
标题: 自定义Layout xml文件转换成View对象和Activity关联的实现
如何把一个layout文件转换成view对象添加到对应的容器内呢?
作者: 李盼    时间: 2013-4-27 10:26
是通过LayoutInflater来加载XML布局文件的,其内部原理就是利用pull解析的方式读取XML文件,把节点名称获取后,利用反射机制进行创建对象,例如节点是<RelativeLayout>就可以知道名称是RelativeLayout,然后反射该名字拿到对应的包,然后调用RelativeLayout(context, attrs)构造方法实例化对象,第一个参数context在我们创建LayoutInflater实例时会传入,第二个参数就是该节点下的属性,在读取XML文件时,会用一个AttributeSet集合进行保存。获取到对象后,我们就可以直接调用父View的addView方法添加,如果是在Activity中作为根布局,我们可以使用setContentView方法直接传入一个布局文件的id号,其内部也是通过这种方式获取到View对象添加的!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2