弯曲防止火花列表上的选择状态

我有一个ItemRenderer,其中所选状态应该被禁用(我正在使用渲染器状态,而我没有选中状态)。 问题在于列表(spark)在点击后重置项目渲染器状态,尽管我没有“选择”状态。

我想完全防止这种行为,但我不知道如何。 我的渲染器已将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)
}

我不清楚你是否想阻止选择一件物品; 或者只是防止与选定项目一起使用的视觉属性。

处理视觉方面; 我试着重写getCurrentRendererState()方法。 像这样的东西:

override protected function getCurrentRendererState():String{
  if (selected && hasState("selected"))){
    return "normal"; // or whatever state you want it to be
  }
  if (selected && down && hasState("downAndSelected")){
     return "normal"; // or whatever state you want it to be
  }        

  super.getCurrentRendererState()

}

理论上,这应该可以防止渲染器进入选定状态。

链接地址: http://www.djcxy.com/p/34623.html

上一篇: flex prevent selection state on spark list

下一篇: How to render a collection of DisplayObject instances in a spark List?