为什么setWidth不起作用?

Roy*_*Roy 10 android android-layout

例如,对于Android中的TextView,您必须设置LayoutParams而不是setWidth方法.

TextView tv = new TextView(getContext());
LayoutParams params = new LayoutParams(100, LayoutParams.WRAP_CONTENT);
tv.setLayoutParams(params);
Run Code Online (Sandbox Code Playgroud)

但为什么?在Android文档中,它表示它会提供相同的结果.

小智 2

您必须使用layoutParams,因为设置不同的宽度或高度可以更改布局的所有定位。所有视图层次结构都必须适应新的尺寸,唯一的方法是更改​​布局参数。然后,家长会收到通知并开始衡量孩子意见的所有过程。