XML-Attribute vom Zusammenführungslayout zum RelativeLayout über Aufblasen

9

Nach diesem CommonsWare-Beispiel konnte ich meine RelativeLayout-Unterklasse mit meinem Layout verbinden, das in einem XML-Layout mit Merge-Root beschrieben wurde. Meine einzige Sorge ist, dass ich meine RelativeLayout-Parameter in XML nicht beschreiben kann.

Mein XML-Layout:

%Vor%

Ich denke, das Problem besteht darin, dass die Zusammenführung mit den Kindern des Zusammenführungs-Tags und nicht mit dem Zusammenführen erfolgt. Irgendeine Idee, wie ich meine Parameter in der Zusammenführung erhalten kann, um mein RelativeLayout zu beeinflussen?

Meine RelativeLayout-Unterklasse, ohne Paketdeklaration und Importe:

%Vor%

Ich weiß, dass ich alles zu einem LayoutParams hinzufügen kann, und füge dann meine MyRelativeLayoutSubclass mit diesen LayoutParams hinzu, aber ich möchte entkommen, das ist viel unnötiger Code.

    
gmate 20.01.2012, 11:54
quelle

2 Antworten

17
  

Ich denke, das Problem besteht darin, dass die Zusammenführung mit den untergeordneten Elementen des Merge-Tags und nicht mit der Zusammenführung selbst erfolgt.

AFAIK, Sie haben Recht. <merge> ist ein Platzhalter, kein ViewGroup .

  

Ich weiß, dass ich alles zu einem LayoutParams hinzufügen kann, und füge dann meine MyRelativeLayoutSubclass mit diesen LayoutParams hinzu, aber ich möchte entkommen, das ist viel unnötiger Code.

Erstellen Sie eine XML-Layoutdatei, die ein MyRelativeLayoutSubclass -Element enthält, und legen Sie Ihre Attribute dort ab. Dann blase das Layout auf.

    
CommonsWare 20.01.2012, 12:14
quelle
1

Das Extrahieren aller Attribute in Style war eine Lösung für mich. Als Bonus ist es abhängig von der Bildschirmgröße im Gegensatz zu den hartcodierten Attributen oder Java-Code. Vielleicht kannst du weiter gehen und es in die Themenattribute einfügen.

%Vor%     
riwnodennyk 15.11.2013 15:12
quelle