如果父View是ConstraintLayout约束布局,当修改某个view时候,直接创建ConstraintLayout.LayoutParams会有问题,没办法直接满足需求。

所有使用ConstraintSet绝对没错
ConstraintLayout约束布局使用ConstraintSet修改某个子view

具体使用步骤

 ConstraintSet set= new ConstraintSet(); 
 //获取一新的ConstraintLayout
 //mConstraintLayout 是你的当前使用的约束布局
set.clone(mConstraintLayout);
//这里是重新设置边距,当然也可以重新设置这个view的任何约束,  参数2的类型,可以点进入方法内部,看源码。
set.setMargin(R.id.id, 1,Utils.dip2px(20)); 
set.setMargin(R.id.id, 3,imageTopMare+Utils.dip2px(20));
//最后一步就是设置新的ConstraintLayout约束 这个必须设置;
set.applyTo(mConstraintLayout);

需要注意的是,当使用ConstraintSet 的时候,你的约束布局里面的所有子view,都必须有个id,不然就会报错 All children of ConstraintLayout must have ids to use ConstraintSet

相关文章:

  • 2021-05-23
  • 2022-12-23
  • 2022-03-07
  • 2021-12-27
  • 2021-10-21
  • 2021-11-22
  • 2022-12-23
猜你喜欢
  • 2021-11-08
  • 2021-07-29
  • 2021-04-08
  • 2021-07-03
  • 2022-12-23
  • 2021-06-10
相关资源
相似解决方案