以编程方式更改约束布局中的高度?

时间:2017-10-05 14:39:07

标签: android android-layout android-constraintlayout

我有一个简单的布局:一个固定高度的TextView,其中三个ImageView对象锚定在视图的底部。

enter image description here

如何以编程方式更改每个ImageView的高度,使它们在某个范围内变化(10dp,低于TextView 16dp)?具体来说,我的活动得到一个百分比列表(介于0和1之间),表示每个" bar"应该接受。

我尝试了以下但没有成功:

// No visible difference
imgView.setMinHeight(newHeight);

// No change to height, but horizontal constrained was messed up
imgView.setLayoutParams(new LayoutParam(imgView.getWidth(), newHeight);

1 个答案:

答案 0 :(得分:18)

如果是&#34;身高&#34;你的意思是render() { // Don't forget to return a value in a switch statement return ( <div> {(() => { switch(...) {} })()} </div> ); } 的绝对顶部到底部尺寸,你可以做以下几倍加倍ImageView的高度。您可以将高度设置为所需的值。

ImageView

请参阅ConstraintLayout.LayoutParams

但是,如果通过&#34;身高&#34;您的意思是ImageView iv = (ImageView) findViewById(R.id.imageView); ConstraintLayout.LayoutParams lp = (ConstraintLayout.LayoutParams) iv.getLayoutParams(); lp.height = lp.height * 2; iv.setLayoutParams(lp); 的垂直位置,您可以执行以下操作来更改ImageView的垂直偏差(假设您使用的是ImageView):

ConstraintLaytout

请参阅setVerticalBias

还有其他方法可以移动ConstraintSet cs = new ConstraintSet(); ConstraintLayout layout = (ConstraintLayout) findViewById(R.id.layout); cs.clone(layout); cs.setVerticalBias(R.id.imageView, 0.25f); cs.applyTo(layout); 布局,但这取决于布局的设置方式。