簡體   English   中英

以編程方式更改約束布局中的高度?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM