Android 如何设置XML属性';布局_约束宽度';以编程的方式对ConstraintLayout进行约束?

Android 如何设置XML属性';布局_约束宽度';以编程的方式对ConstraintLayout进行约束?,android,android-constraintlayout,Android,Android Constraintlayout,在约束布局中,如何转换xml属性: app:layout_constrainedWidth=“true | false” 在代码?中,如果要通过编程设置约束宽度/高度,则必须使用约束Layout.LayoutParams作为视图,并根据自己的意愿设置名为约束宽度或约束高度的标志 即 约束宽度 指定水平尺寸标注是否受约束(如果两个尺寸标注均为左侧)& 设置了正确的约束,并且小部件维度不是固定的 维度 默认情况下,如果一个小部件被设置为WRAP\u CONTENT,我们将 将该维度视为固定维度,这

在约束布局中,如何转换xml属性:

app:layout_constrainedWidth=“true | false”


在代码?

中,如果要通过编程设置
约束宽度/高度
,则必须使用
约束Layout.LayoutParams
作为视图,并根据自己的意愿设置名为约束宽度约束高度的标志


约束宽度

指定水平尺寸标注是否受约束(如果两个尺寸标注均为左侧)& 设置了正确的约束,并且小部件维度不是固定的 维度

默认情况下,如果一个小部件被设置为
WRAP\u CONTENT
,我们将 将该维度视为固定维度,这意味着该维度将 无论约束如何,都不会更改

将此属性设置为true 允许修改标注以遵守约束


退房。

我刚刚想好了

基于以上的答案

constrainedWidth
可以通过
ConstrainedLayout.LayoutParams
访问,因此可以通过以下代码进行更改:(谢谢@JeelVankhede)

但是,当使用
ConstraintSet
时,需要以下代码:

val constraintLayout = // your constraint layout
val constraintSet = ConstraintSet()
constraintSet.clone(constraintLayout)

// This is the imporatant part
constraint.constrainDefaultWidth(R.id.yourViewId, ConstraintSet.MATCH_CONSTRAINT_WRAP)

constraintSet.applyTo(constraintLayout)

非常感谢。这让我抓狂,但ConstraintDefaultWidth为编程创建和约束视图提供了窍门。
ConstraintLayout.LayoutParams lp = (ConstraintLayout.LayoutParams) 
myView.getLayoutParams(); // View for which we need to set constrainedWidth.
lp.constrainedWidth = true/false;
myView.setLayoutParams(lp);
val constraintLayout = // your constraint layout
val constraintSet = ConstraintSet()
constraintSet.clone(constraintLayout)

// This is the imporatant part
constraint.constrainDefaultWidth(R.id.yourViewId, ConstraintSet.MATCH_CONSTRAINT_WRAP)

constraintSet.applyTo(constraintLayout)