Ich muss die Höhe einer Bildansicht programmgesteuert als Matchparent einstellen. Wenn es sich um eine feste Höhe handelt, weiß ich, wie man sie einstellt.
aber wie kann ich es als matchparent einstellen?
BEARBEITEN:
Tatsächlich ist die Höhe des übergeordneten Layouts dynamisch. Daher muss die Höhe der Bildansicht als Höhe des übergeordneten Layouts festgelegt werden.
Antworten:
LayoutParams initiieren.
Weisen Sie die Breite und Höhe des übergeordneten Elements zu und übergeben Sie sie an die setLayoutParams-Methode der Bildansicht
quelle
imageView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
quelle
quelle
imageView.setLayoutParams (new ViewGroup.MarginLayoutParams (width, ViewGroup.LayoutParams.MATCH_PARENT));
Die Art der Layoutparameter hängt von der übergeordneten Ansichtsgruppe ab. Wenn Sie die falsche eingeben, führt dies zu einer Ausnahme.
quelle
Für Kotlin-Benutzer
val params = mImageView?.layoutParams as FrameLayout.LayoutParams params.width = FrameLayout.LayoutParams.MATCH_PARENT params.height = FrameLayout.LayoutParams.MATCH_PARENT mImageView?.layoutParams = params
Hier habe ich verwendet,
FrameLayout.LayoutParams
da meine Ansichten (ImageView
) Eltern sindFrameLayout
quelle
Ich hatte das gleiche Problem. Gelöst durch erste Einstellung:
imageView.setMinHeight(0); imageView.setMinimumHeight(0);
Und dann :
setMinHeight wird von ImageView definiert, während setMinimumHeight von View definiert wird. Gemäß den Dokumenten wird der größere der beiden Werte verwendet, daher müssen beide festgelegt werden.
quelle
Sie können diesen Fall ausprobieren, falls Sie mit dem Elternteil übereinstimmen möchten. Die Maßanordnung ist Breite und Höhe in der Reihenfolge
web = new WebView(this); web.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
quelle
Sie können die Konstante MATCH_PARENT oder ihren numerischen Wert -1 verwenden.
quelle