/ / Wie funktioniert LayoutParams.addRule? - Android, relativelayout, layoutparams

Wie funktioniert LayoutParams.addRule? - Android, Relativlayout, LayoutParams

Ich baue eine Anwendung, die Ansichten hinzufügtzu einem relativen Layout bis zum Stoppen. Meine Frage ist, wie RelativeLayout.LayoutParams.addRule funktioniert. Wenn ich addRule ständig anrufe, wird dadurch eine ständig wachsende Liste erstellt, oder prüft addRule, ob bereits eine Regel vorhanden ist? Ist der folgende Code wirklich notwendig? Kann ich einfach addRule verwenden und wenn es bereits existiert, wird kein doppelter Eintrag erstellt?

Vielen Dank

    int[] rules = this.position[0].params.getRules();
boolean rule = false;

switch(index){
case 0:

for(int i = 0; i < rules.length; i++){
if(rules[i]==RelativeLayout.RIGHT_OF)
rule = true;
}

if(!rule){
this.position[0].params.addRule(RelativeLayout.RIGHT_OF);
}

break;
case 1:

for(int i = 0; i < rules.length; i++){
if(rules[i]==RelativeLayout.LEFT_OF)
rule = true;
}

if(!rule){
this.position[1].params.addRule(RelativeLayout.LEFT_OF);
}

break;
case 2:

for(int i = 0; i < rules.length; i++){
if(rules[i]==RelativeLayout.ABOVE)
rule = true;
}

if(!rule){
this.position[2].params.addRule(RelativeLayout.ABOVE);
}

break;
case 3:

for(int i = 0; i < rules.length; i++){
if(rules[i]==RelativeLayout.BELOW)
rule = true;
}

if(!rule){
this.position[3].params.addRule(RelativeLayout.BELOW);
}

break;
}

Antworten:

1 für die Antwort № 1

Schauen Sie sich den Code für die RelativeLayout.LayoutParams Klasse können Sie sehen, dass die Regeln in einer gespeichert sind int Array, bei dem die Regeln die Indizes sind, werden die Regeln nur einmal hinzugefügt, unabhängig davon, wie oft Sie aufrufen addRule(der letzte Anruf zählt).