【问题标题】:Spark List with Buttons带按钮的火花列表
【发布时间】:2011-08-25 16:08:47
【问题描述】:

我有一个 Spark 列表,其中包含一个由填写的表单应用程序列表组成的数据提供者。向每个列表项(表单应用程序)添加按钮的最佳方法是什么?此按钮将被命名为 Open,并将导航到指定的表单应用程序。

提前感谢您的任何建议!

【问题讨论】:

    标签: apache-flex actionscript-3


    【解决方案1】:

    这与@www.Flextras.com 所说的类似,所以我不再赘述。但是,我将添加一个示例和一两件事。

    您的自定义 ItemRenderer 可能如下所示:

    <s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
                    xmlns:s="library://ns.adobe.com/flex/spark">
    
        <fx:Script>
            <![CDATA[
                import mx.events.ItemClickEvent;
    
                private function requestForm():void {
                    var event:ItemClickEvent = new ItemClickEvent(ItemClickEvent.ITEM_CLICK);
                    event.index = itemIndex;
                    event.item = data;
                    owner.dispatchEvent(event);
                }
            ]]>
        </fx:Script>
    
        <s:Label id="labelDisplay" verticalCenter="0" />
        <s:Button right="0" label="open" verticalCenter="0" click="requestForm()" />
    
    </s:ItemRenderer>
    

    与 Flextras 的回答不同的两点:

    • 我使用内置的 ItemClickEvent 而不是自定义事件 > less 编码
    • 我在 ItemRenderer 的 owner 上调度事件,它 实际上就是包含这个 ItemRenderer 的 List。因为这, 你不需要冒泡事件。

    现在要在单击按钮时打开表单,请执行以下操作:

    myList.addEventListener(ItemClickEvent.ITEM_CLICK, openForm);
    
    private function openForm(event:ItemClickEvent):void {
        trace("open " + event.item.toString());
    }
    

    【讨论】:

    • +!用于调度渲染器的所有者。绝对是一种有趣的方法。
    • 亲爱的上帝...我到处寻找,但没有找到解决类似问题的方法,感谢您,我终于意识到我错过了dispatch 中的owner 事件...谢谢! !
    • @RaviKChowdary 当然,没有区别。请注意,Flextras 的答案中描述的“冒泡”方法可能更适合您的需求。
    【解决方案2】:

    使用自定义 itemRenderer,该 itemRenderer 将按钮与您的 itemRenderer 数据一起显示(表单应用程序)。

    当按钮被点击时;调度一个冒泡的自定义事件。您可能必须为单击此按钮所代表的表单应用程序添加一些标识符。

    使用 addEventListener() 方法监听列表类上的事件。您不能使用 MXML,因为您将使用列表默认元数据中未定义的自定义事件。

    在您的侦听器中,执行相关的 UI 更改以显示您的表单应用程序。

    【讨论】:

      猜你喜欢
      • 2017-11-06
      • 1970-01-01
      • 2011-05-26
      • 2014-06-28
      • 2021-12-02
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多