эта работа для меня
<meta name="author" content="Alan van Buuren @("@Alan_van_Buuren")">
Или вы можете использовать: @@ Alan_van_Buuren
: S
Если вы хотите установить constrainedWidth/Height
программно, то вы должны взять ConstraintLayout.LayoutParams
для своего просмотра и установить флаг с именем constrainedWidth или constrainedHeight по вашему желанию. 115]
Т.е.
ConstraintLayout.LayoutParams lp = (ConstraintLayout.LayoutParams) myView.getLayoutParams(); // View for which we need to set constrainedWidth.
lp.constrainedWidth = true/false;
myView.setLayoutParams(lp);
constrainedWidth
Укажите, будет ли ограничен размер по горизонтали в случае, когда левые и ампер; установлены правильные ограничения, и измерение виджета не является фиксированным измерением.
По умолчанию, если для виджета установлено значение
WRAP_CONTENT
, мы будем рассматривать это измерение как фиксированное измерение , то есть измерение не изменится независимо от ограничений.Установка этого атрибута в true позволяет измерению изменяться для соблюдения ограничений.
blockquote>Проверьте здесь .
Я только что понял это.
Таким образом, основываясь на ответах выше, к
constrainedWidth
можно получить доступ через ConstraintLayout.LayoutParams
, и, таким образом, его можно изменить с помощью следующего кода: (Спасибо @JeelVankhede)
ConstraintLayout.LayoutParams lp = (ConstraintLayout.LayoutParams)
myView.getLayoutParams(); // View for which we need to set constrainedWidth.
lp.constrainedWidth = true/false;
myView.setLayoutParams(lp);
[118 ] Однако при использовании ConstraintsSet
потребуется следующий код:
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)