Ist es möglich, beim Erstellen eines RelativeLayout zur Laufzeit das Äquivalent von android:layout_below
programmgesteuert festzulegen?
203
Ist es möglich, beim Erstellen eines RelativeLayout zur Laufzeit das Äquivalent von android:layout_below
programmgesteuert festzulegen?
Ja:
RelativeLayout.LayoutParams params= new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.BELOW, R.id.below_id);
viewToLayout.setLayoutParams(params);
Zunächst erstellt der Code neue Layoutparameter, indem Höhe und Breite angegeben werden. Die addRule
Methode fügt das Äquivalent der XML ordnungsgemäß hinzu android:layout_below
. Dann rufen Sie einfach View#setLayoutParams
die Ansicht auf, in der Sie diese Parameter haben möchten.
Alternativ können Sie die aktuellen Layoutparameter der Ansichten verwenden und ändern:
quelle
LayoutParams
anstatt neue zu erstellen. In der Tat sollte dies als die richtige Antwort akzeptiert werden.Während die @ jackofallcode-Antwort korrekt ist, kann sie in eine Zeile geschrieben werden:
quelle
LayoutParams
, um sie einzustellensetLayoutParams
Kotlin- Version mit Infix- Funktion
Dann können Sie schreiben:
Oder Sie können es als normale Funktion aufrufen:
quelle