我注意到有两种方法可以将编程方式的LayoutParams添加到任何视图中,并且很想知道它们是否也有不同的含义。
示例1
在此示例中,将LayoutParams直接设置为按钮。
LinearLayout parent = new LinearLayout(this);
Button btnNew = new Button(this);
LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
button.setLayoutParams(params);
parent.addView(btnNew);
示例2
在此示例中,在将layoutparams添加到父视图时,将layoutparams添加到按钮。
LinearLayout parent = new LinearLayout(this);
Button btnNew = new Button(this);
LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
parent.addView(btnNew, params);
两者有什么不同?
答案 0 :(得分:0)
没有区别。如果检查android源代码,则指定如果未指定布局参数,则设置视图组的defualts参数。当您使用方法
时addView(child,params);
它调用另一个名为addViewInner的方法,该方法只将params对象设置为子对象。
ViewGroup.java的源代码可以在这里看到