我需要以编程方式将 imageview 的高度设置为 matchparent 。如果它是固定高度我知道如何设置。
但是如何将其设置为matchparent?
修改
实际上父布局的高度是动态的。所以我需要将imageview的高度设为父级的高度。
答案 0 :(得分:207)
imageView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
答案 1 :(得分:45)
imageView.getLayoutParams().height= ViewGroup.LayoutParams.MATCH_PARENT;
答案 2 :(得分:14)
imageView.setLayoutParams
(new ViewGroup.MarginLayoutParams
(width, ViewGroup.LayoutParams.MATCH_PARENT));
布局类型的参数取决于父视图组。如果你选错了它会导致异常。
答案 3 :(得分:4)
我有同样的问题。通过首先设置来解决:
imageView.setMinHeight(0);
imageView.setMinimumHeight(0);
然后:
imageView.getLayoutParams().height= ViewGroup.LayoutParams.MATCH_PARENT;
setMinHeight由ImageView定义,而setMinimumHeight由View定义。根据文档,使用两个值中的较大者,因此必须同时设置两个值。
答案 4 :(得分:3)
你可以尝试这个想要匹配父母的。尺寸排列是宽度和高度的顺序
web = new WebView(this);
web.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
答案 5 :(得分:1)
您可以使用MATCH_PARENT常量或其数值-1。
答案 6 :(得分:0)
对于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
是因为我的视图(ImageView
)的父母是FrameLayout
答案 7 :(得分:-3)
启动LayoutParams。
指定父级的宽度和高度,并将其传递给imageview的setLayoutParams方法