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?

Cote Mounyo
quelle

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.

Cote Mounyo
quelle
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

Der Zweite
quelle