首先看一下addview源码
public void addView(View child) {
addView(child, -1);
}
public void addView(View child, int index) {
LayoutParams params = child.getLayoutParams();
if (params == null) {
params = generateDefaultLayoutParams();
if (params == null) {
throw new IllegalArgumentException("generateDefaultLayoutParams() cannot return null");
}
}
addView(child, index, params);
}
解决方案: 1.当addView方法完成之后,重新设置子控件vChild的LayoutParams属性即可。
调用inflate (int resource, ViewGroup root, boolean attachToRoot) 方法。将第二个参数设为待加入布局的父布局,第三个参数为false