95

我需要以编程方式将图像视图的高度设置为 matchparent如果它是固定高度,我知道如何设置。

但我怎样才能将它设置为匹配父项?

编辑:

实际上父布局的高度是动态的。所以我需要将图像视图的高度作为父的高度。

4

8 回答 8

277
imageView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
于 2012-04-25T06:44:30.217 回答
61
imageView.getLayoutParams().height= ViewGroup.LayoutParams.MATCH_PARENT;
于 2016-05-24T10:17:34.430 回答
15
imageView.setLayoutParams
    (new ViewGroup.MarginLayoutParams
        (width, ViewGroup.LayoutParams.MATCH_PARENT));

布局参数的类型取决于父视图组。如果你放错了它会导致异常。

于 2012-04-25T06:48:55.833 回答
13

对于 Kotlin 用户

val params = mImageView?.layoutParams as FrameLayout.LayoutParams
params.width = FrameLayout.LayoutParams.MATCH_PARENT
params.height = FrameLayout.LayoutParams.MATCH_PARENT
mImageView?.layoutParams = params

我在这里使用FrameLayout.LayoutParams,因为我的 views( ImageView) 父母是FrameLayout

于 2019-02-13T11:42:39.000 回答
7

我有同样的问题。通过首先设置解决:

imageView.setMinHeight(0);
imageView.setMinimumHeight(0);

进而 :

imageView.getLayoutParams().height= ViewGroup.LayoutParams.MATCH_PARENT;

setMinHeight 由 ImageView 定义,而 setMinimumHeight 由 View 定义。根据文档,使用两个值中的较大者,因此必须设置两者。

于 2020-02-16T14:24:17.340 回答
3

如果你想匹配父母,你可以试试这个。尺寸排列是宽高顺序

web = new WebView(this);
        web.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
于 2016-04-09T05:38:25.780 回答
1

您可以使用 MATCH_PARENT 常量或其数值 -1。

于 2012-04-25T06:45:33.867 回答
-20

启动 LayoutParams 。

分配父级的宽度和高度并将其传递给 imageview 的 setLayoutParams 方法

于 2012-04-25T06:51:36.830 回答