2017-12-29 13 views
0

Ich versuche, eine XMXL-Komponente zu erstellen, die ein Bild und eine Optionsschaltfläche enthält. Das Hauptanwendungsskript verwendet mehrere dieser Komponenten.RadioButton Funktionalität in benutzerdefinierten Komponente

Ich habe Probleme, die RadioGroup richtig funktionieren zu lassen. Ich habe eine Variable für das Attribut RadioButton groupName in der Komponente mxml-Datei gebunden, so dass ich dies im Hauptanwendungsskript einstellen kann.

Dies funktioniert ordnungsgemäß, wenn ich jede RadioGroup durchsuche, wird nur der erste Radiobutton jeder Gruppe fokussiert. Aber wenn ich jedes Optionsfeld in einer Gruppe anklicke, wird die vorherige nicht abgewählt.

Ich habe gelesen, dass ich die Komponenten-IDs nicht binden kann. Wie kann ich sonst nur eine Optionsschaltfläche in jeder Gruppe auswählen? Muss ich IFocusManager implementieren?

Danke

Antwort

1

Jede Gruppe von Radiobuttons einen Radiobutton zum Gruppennamen zugewiesen werden muss. Die RadioButtonGroup stellt sicher, dass jeweils nur eine Schaltfläche ausgewählt ist. Die RadioButtonGroup wird in <fx:Declarations> deklariert und der Name der RadioButtonGroup wird in der groupName-Eigenschaft zugewiesen.

<fx:Declarations> 
     <s:RadioButtonGroup id="paymentType" itemClick="handlePayment(event);"/> 
    </fx:Declarations> 
    <s:VGroup paddingLeft="10" paddingTop="10"> 
     <s:RadioButton groupName="paymentType" 
         id="payCheck" 
         value="check" 
         label="Pay by check" 
         width="150"/> 
     <s:RadioButton groupName="paymentType" 
         id="payCredit" 
         value="credit" 
         label="Pay by credit card" 
         width="150"/> 
    </s:VGroup> 

Die Apache Flex-Referenz: http://flex.apache.org/asdoc/spark/components/RadioButtonGroup.html

+0

Danke. Aus weiterem Lesen verstehe ich, dass ich die IFocusManagerGroup-Schnittstelle implementieren muss und dann die get- und set-Funktionen für selected und groupName implementieren muss. Ich habe es geschafft, groupName zu implementieren, aber ich habe Probleme mit ausgewählten. Welche Komponente ist für den Aufruf der ausgewählten Methode auf allen Radiobuttons innerhalb desselben Gruppennamens zuständig? Ich muss das wissen, damit ich diese Funktionalität in meiner eigenen benutzerdefinierten Komponente spiegeln kann. – user3468174

+0

Wenn Sie eine eigene Implementierung einer RadioGroup ausführen, sollten Sie Ihre Klassen auf RadioButton und RadioButtonGroup erweitern, damit Sie ihre Funktionalität erhalten. – 0xc3

+0

Bitte sehen Sie sich die folgende Frage an, die Code enthält und hoffentlich erklärt, was ich versuche ----- https://stackoverflow.com/questions/48130522/using-radiobuttongroup-funcitonality-across-multiple-custom-components ---- Ich habe versucht, den skinnablecontainer zu mx: UIComponent zu ändern, aber dann bekomme ich einen Fehler -> 'Label' Deklaration muss innerhalb des -Tags enthalten sein, da es 'mx.core.IUIComponent' nicht implementiert. Irgendwelche Ideen? – user3468174

Verwandte Themen