[英]Programmatically change height in constraint layout?
我有一個簡單的布局:一個固定高度的 TextView,三個 ImageView 對象固定在視圖的底部。
如何以編程方式更改每個 ImageView 的高度,以便它們在某個范圍內(TextView 下方的 10dp、16dp)變化? 具體來說,我的活動得到一個百分比列表(在 0 和 1 之間),代表每個“條”應該占據多少垂直空間。
我嘗試了以下但沒有成功:
// No visible difference
imgView.setMinHeight(newHeight);
// No change to height, but horizontal constrained was messed up
imgView.setLayoutParams(new LayoutParam(imgView.getWidth(), newHeight);
如果“高度”是指ImageView
的絕對從上到下的尺寸,則可以執行以下操作以將ImageView
的高度加倍。 您可以將高度設置為您想要的值。
ImageView iv = (ImageView) findViewById(R.id.imageView);
ConstraintLayout.LayoutParams lp = (ConstraintLayout.LayoutParams) iv.getLayoutParams();
lp.height = lp.height * 2;
iv.setLayoutParams(lp);
請參閱ConstraintLayout.LayoutParams 。
但是,如果“高度”是指ImageView
的垂直位置,則可以執行以下操作來更改ImageView
的垂直偏差(假設您使用的是ConstraintLaytout
):
ConstraintSet cs = new ConstraintSet();
ConstraintLayout layout = (ConstraintLayout) findViewById(R.id.layout);
cs.clone(layout);
cs.setVerticalBias(R.id.imageView, 0.25f);
cs.applyTo(layout);
請參閱setVerticalBias 。
還有其他方法可以移動關於布局的ImageView
,但您使用哪種方法取決於您的布局是如何設置的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.