【发布时间】:2013-10-25 14:15:29
【问题描述】:
我有一个 ItemRenderer,其中应禁用选定状态(我正在使用渲染器状态,但我没有选定状态)。 问题是列表(火花)在单击时重置项目渲染器状态,即使我没有“选择”状态。
我想完全阻止这种行为,但我不知道怎么做。 我的渲染器将 autoDrawBackground 设置为 false,但必须启用它(尽管 enabled=false 修复了这个问题) 此外,渲染器有几个孩子,包括它自己的列表。 在渲染器上设置 mouseEnabled="false" 会修复渲染器本身,但不会修复其子级,我需要一些子级启用鼠标。
编辑:
以下是我的项目渲染器的摘录:
<?xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:s="library://ns.adobe.com/flex/spark"
width="100%" autoDrawBackground="false">
<s:states>
<s:State name="normal" />
<s:State name="suitable" />
<s:State name="mine" />
<s:State name="deleted" />
</s:states>
<s:Rect id="rect" top="0" right="0" bottom="0" left="0">
<s:fill>
<s:SolidColor id="background"
alpha=".8" alpha.deleted=".4"
color="0xff0000" color.suitable="0x00ff00" color.mine="0x0000ff" />
</s:fill>
</s:Rect>
<s:Label id="name" left="4" top="4" right="40" />
<s:List id="myList" left="4" top="40" right="4"
contentBackgroundAlpha="0" borderVisible="false" horizontalScrollPolicy="off">
<s:layout>
<s:VerticalLayout gap="3" paddingBottom="4" requestedMinRowCount="2" />
</s:layout>
</s:List>
</s:ItemRenderer>
第二次编辑:
我在鼠标悬停状态下遇到了同样的问题,但似乎有一个解决方法:
override protected function set hovered(value:Boolean) : void
{
// do nothing (prevent current state from changing to "hovered" state)
}
【问题讨论】:
-
你能把渲染器的代码贴出来
-
@splash,我看过这篇文章,但添加“更改”事件并没有解决我的问题
-
@Lee,我已经用相关代码更新了问题。
标签: apache-flex itemrenderer flex-spark