Entfernen Sie die Regel aus RelativeLayout vor API 17


78

Wie entferne ich vor API 17 eine Regel aus einem Layout? Ich habe ein RelativeLayout mit mehreren Kindern. Das RelativeLayout ist das Hauptlayout meiner Aktivität. Nach dem programmgesteuerten Hinzufügen der Regel mit

RelativeLayout.LayoutParams layout = (LayoutParams) theChild.getLayoutParams();
layout.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);

Ich muss die Regel zu einem späteren Zeitpunkt programmgesteuert entfernen. Wie würde ich dies unter der Annahme einer früheren API als 17 tun?

Antworten:


162

Ah, ich finde es heraus.

RelativeLayout.LayoutParams layout = (LayoutParams) myChild.getLayoutParams();
layout.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, 0);

Es gibt also wirklich keine removeRule bis API 17.


9
Diese Antwort war mir nicht sofort klar. Im Android-Code macht removeRule (Regel) im Grunde dasselbe wie addRule (Regel, 0), weshalb die hier gezeigte Antwort funktioniert.
Greg7gkb

1
@Cote Mounyo, aber dieser Code jetzt in AS erfordert API-Level19, wie man in API-Level unter o gleich 16 macht
Erum

0

Je nach Situation habe ich in meinem Fall neue LayoutParamsRegeln erstellt und dann die erforderlichen Regeln hinzugefügt

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.