我们平常通过xml编写的布局是如何转换成android中的一个View对象从而显示在应用程序中的呢?这就是LayoutInflater.

setContentView底层原理也是通过LayoutInflater。
它将xml布局转换成一个View对象分为两步:
1 通过解析器将xml文件中的内容解析出来。
2 使用反射将解析出来的元素创建成View对象。

接下来看使用反射创建View对象的代码片段。

利用反射构造函数器newInstance创建对象

使用的几种方式:

1 第一种不指定root布局传为空 然后调用addView方法
这种时候buttonLayout所有的layout开头的属性都失效,改变宽高没作用。
2 第二种 指定父布局 第三个参数传false 这种后面调用addView方法正常使用。
3 第三种 指定父布局 第三个参数传true 这种后面不需要调用addView方法。否则会报错。
网友评论