Skip to content
阅读进度

如何使用 ConstraintSet 动态修改约束条件?其底层实现原理是什么? ​

返回 View 与显示链路 目录

标准回答 ​

创建 ConstraintSet,先 clone 当前 ConstraintLayout 的约束,再用 connect、clear、constrainWidth 等方法修改,最后 applyTo(layout)。本质是更新各子 View 的布局约束,由后续测量和布局按新约束重新求解位置。

通俗例子 ​

点击展开详情时,把按钮从内容下方改为贴父容器底部:复制原约束、修改连接关系、applyTo,然后重新测量和布局。

内容来源 ​

用完整回答理解机制,用真实证据解释项目。