布局填充方式的区别

  • LayoutInflater 的 inflate 方法和 View 的 inflate 方法

  • View 的 inflate 方法有时候,会出现宽高属性不起作用的情况。而 LayoutInflater 类的 inflate 方法,不会出现这种情况

  • LayoutInflater 的 inflate 方法适用于所有需要进行布局填充的场景,是Android中专门进行布局填充的方法

  • View 的 inflate 方法内部包裹了 LayoutInflater 类的 inflate 方法

  • LayoutInflater 的 inflate 三个参数的方法

  • 详解链接:http://blog.csdn.net/u012702547/article/details/52628453

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public View inflate(@LayoutRes int resource, @Nullable ViewGroup root, boolean attachToRoot) {
final Resources res = getContext().getResources();
if (DEBUG) {
Log.d(TAG, "INFLATING from resource: \"" + res.getResourceName(resource) + "\" ("
+ Integer.toHexString(resource) + ")");
}
final XmlResourceParser parser = res.getLayout(resource);
try {
return inflate(parser, root, attachToRoot);
} finally {
parser.close();
}
}
  • LayoutInflater 的 inflate 两个个参数的方法
1
2
3
public View inflate(XmlPullParser parser, @Nullable ViewGroup root) {
return inflate(parser, root, root != null);
}
  • View 的 inflate 方法
1
2
3
4
public static View inflate(Context context, @LayoutRes int resource, ViewGroup root) {
LayoutInflater factory = LayoutInflater.from(context);
return factory.inflate(resource, root);
}