您好我在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);
}
我看不出有什么理由不能选择它,任何指针都非常赞赏。
答案 0 :(得分:2)
对此进行排序。我忘了在覆盖中调用super.data = value。
答案 1 :(得分:0)
不要为自定义渲染器扩展HBox
,而是直接延长ListItemRenderer
或Canvas
。
顺便说一句,我会假设你在这个问题上贴错了,因为你是从
开始的<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" horizontalScrollPolicy="off">
..并以:结束:
</mx:Box>