自定义组件中的 RadioButton 功能
Posted
技术标签:
【中文标题】自定义组件中的 RadioButton 功能【英文标题】:RadioButton functionality in custom component 【发布时间】:2018-06-09 17:12:22 【问题描述】:我正在尝试创建一个包含图像和单选按钮的 xml 组件。 主应用程序脚本将使用其中几个组件。
我在尝试使 RadioGroup 正常运行时遇到问题。 我在组件 mxml 文件中的 RadioButton groupName 属性上绑定了一个变量,因此我可以在主应用程序脚本中设置它。
当我浏览每个 RadioGroup 时,此功能正常,只有每个组的第一个单选按钮获得焦点。 但是当我单击组中的每个单选按钮时,前一个不会取消选择。
我已经读到我无法绑定组件 ID,那么我还能如何实现在每个组中只选择一个单选按钮? 我需要实现 IFocusManager 吗?
谢谢
【问题讨论】:
【参考方案1】:每组 RadioButtons 都需要一个 RadioButtonGroup 分配给 groupName。 RadioButtonGroup 确保一次只选择 1 个按钮。
RadioButtonGroup 在<fx:Declarations>
中声明,是在 groupName 属性中分配的 RadioButtonGroup 的名称。
<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"
/>
<s:RadioButton groupName="paymentType"
id="payCredit"
value="credit"
label="Pay by credit card"
/>
</s:VGroup>
Apache Flex 参考:http://flex.apache.org/asdoc/spark/components/RadioButtonGroup.html
【讨论】:
谢谢。通过进一步阅读,我了解到我必须实现 IFocusManagerGroup 接口,然后为 selected 和 groupName 实现 get 和 set 函数。我已经设法实现 groupName 但我在选择时遇到问题。哪个组件负责在同一组名中的所有单选按钮上调用选定的方法?我需要知道这一点,以便我可以在我自己的自定义组件中反映此功能。 如果您正在滚动自己的 RadioGroup 实现,那么您应该扩展您的类以包含 RadioButton 和 RadioButtonGroup,以便获得它们的功能。 请看下面的问题,它提供了一些代码,希望能解释我想要做什么 ----- ***.com/questions/48130522/… ---- 我试图将 skinnablecontainer 更改为 mx:UIComponent 但是然后我得到一个错误->“标签”声明必须包含在以上是关于自定义组件中的 RadioButton 功能的主要内容,如果未能解决你的问题,请参考以下文章