我如何知道我是否需要调用 setLayoutParams 或只是更改现有 LayoutParams 的值?



我怎么知道getLayotParams((是否返回对有效参数的引用,或者它只是参数的深层副本?

说:

MarginLayoutParams layoutParams = (MarginLayoutParams) getView().getLayoutParams();
layoutParams.leftMargin = horizontalMargin;
layoutParams.rightMargin = horizontalMargin;

够了,还是也需要这条线?

parent.setLayoutParams(layoutParams);

getLayoutParams返回实际的LayoutParams,而不是深层副本。但是,更新参数不会触发布局,您必须调用requestLayout,当您使用setLayoutParams时会自动调用。

因此,如果要修改值并应用它们,则需要调用setLayoutParams或使用requestLayout触发布局。

如果您使用 Kotlin,您也可以使用updateLayoutParams扩展函数。

最新更新