2011-09-25 43 views
0

我注意到有两种方法可以将LayoutParams以编程方式添加到任何视图,并且好奇地问他们是否也有不同的含义。Android不同的方式来添加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按钮。

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

没有区别,要拆分例2的最后一行中最后两行例1中。 –

+0

只是在示例1中多了一行。就是这样。 –

+0

感谢您让我知道 – Neutralizer

回答

0

没有区别。如果您检查了android源代码,它指定如果没有指定布局参数,则设置视图组的defualts参数。当您使用方法

addView(child,params); 

它调用另一个名为addViewInner的方法,它只是将params对象设置为子对象。

ViewGroup.java的源代码可以在这里看到

+0

源代码链接已死。 –

+0

@ andrew-p链接已修复。 – blessenm

相关问题