setLayoutParams vs addView用于添加新视图

hul*_*ist 4 android android-layout layoutparams

使用setLayoutParams和为addView提供参数有什么区别?

我知道addView仅在第一次添加视图时才有效.我找到了两种显然做同样事情的方法:

tv.setLayoutParams(params);
layout.addView(tv)
Run Code Online (Sandbox Code Playgroud)

VS

layout.addView(tv, params)
Run Code Online (Sandbox Code Playgroud)

它们是等价的吗?
如果不是,有什么区别?

Luk*_*rog 5

它们是等价的吗?

是的,第一种方法会进行额外的检查以确定是否ViewLayoutParams在其上设置了哪一个(并且LayoutParams如果它们不存在则生成一些).你可以选择其中一个(我会选择第二个方法调用).