【问题标题】:Unable to select custom item renderer (flex)无法选择自定义项目渲染器 (flex)
【发布时间】:2023-11-24 19:16:01
【问题描述】:

您好,我在 mxml 中制作了以下项目渲染器,但是当我在列表中使用它时,由于某种原因我无法选择它。 我做错了吗?

<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml"
horizontalScrollPolicy="off">
<mx:Script>
<![CDATA[
import com.pbsmedia.kanpeki.domain.calEvent.CalEventType;
[Bindable]
private var calEventType:CalEventType;
override public function set data(value:Object):void
{
if(value != null)
{
calEventType = value as CalEventType;
colorBar.setStyle("backgroundColor", calEventType.eventColor);
}
}
]]>
</mx:Script>
<mx:Image source="{calEventType.icon}" />
<mx:Label text="{calEventType.name}" selectable="true"/>
<mx:HBox height="100%" width="100%" horizontalAlign="right" paddingRight="20">
<mx:Box id="colorBar" width="50" height="100%" >
</mx:Box>

渲染器在列表的父组件创建完成时设置为 跟随。

private function cc():void{
if(_itemRenderer != null)
{
lt.itemRenderer = getItemRendererFactory();
}
}
private function getItemRendererFactory():ClassFactory
{
return new ClassFactory(_itemRenderer);
}

我看不出我不能选择它的任何原因,非常感谢任何指针。

【问题讨论】:

    标签: apache-flex flex3


    【解决方案1】:

    对此进行了排序。我忘记在覆盖中调用 super.data = value。

    【讨论】:

    • 我需要在我的显示器上粘贴一个便利贴。每次都能吸引我。
    【解决方案2】:

    不要为您的自定义渲染器扩展 HBox,而是尝试直接扩展 ListItemRendererCanvas

    顺便说一句,我假设你在问题上粘贴错了,因为你是从

    <mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" horizontalScrollPolicy="off">
    

    .. 并以:

    结束
    </mx:Box>
    

    【讨论】: