如何禁用选择&列表中的翻转颜色?

时间:2011-02-26 21:48:12

标签: flex

如何禁用翻转,选择&将焦点聚焦在列表中?我尝试将它们设置为“{null}”,但这只会使它们变黑:

<s:Application 
xmlns:fx="http://ns.adobe.com/mxml/2009" 
xmlns:s="library://ns.adobe.com/flex/spark"
width="100%" height="100%"
backgroundColor="white" 
>

<fx:Declarations>
    <s:ArrayCollection id="myArray">
        <fx:String>Item 0</fx:String>
        <fx:String>Item 1</fx:String>
        <fx:String>Item 2</fx:String>
        <fx:String>Item 3</fx:String>
        <fx:String>Item 4</fx:String>
    </s:ArrayCollection>
</fx:Declarations>

<s:VGroup horizontalAlign="center">

    <s:List dataProvider="{myArray}" width="200" height="200"
             focusColor="{null}" selectionColor="{null}"
             rollOverColor="{null}"
            >
        <s:itemRenderer>
            <fx:Component>
                <s:ItemRenderer>
                    <s:states>
                        <s:State name="normal"  />
                        <s:State name="hovered" />
                        <s:State name="selected" />
                    </s:states>



                    <s:Label text="{data}" width="100%" left="5" top="7" bottom="5" />
                </s:ItemRenderer>
            </fx:Component>
        </s:itemRenderer>
    </s:List>

</s:VGroup>
</s:Application>

2 个答案:

答案 0 :(得分:14)

尝试将itemRenderer中的autoDrawBackground属性设置为false。

<s:itemRenderer >
            <fx:Component>
                <s:ItemRenderer autoDrawBackground="false">
                    <s:states>
                        <s:State name="normal"  />
                        <s:State name="hovered" />
                        <s:State name="selected" />
                    </s:states>

                    <s:Label text="{data}" width="100%" left="5" top="7" bottom="5" />
                </s:ItemRenderer>
            </fx:Component>
        </s:itemRenderer>

答案 1 :(得分:2)

基于this,我提出了这个问题:

<s:itemRenderer>
<fx:Component>
    <s:ItemRenderer>
        <fx:Script>
        <![CDATA[
        override protected function get hovered():Boolean { return false; }
        override protected function get down():Boolean { return false; }
        override public function get selected():Boolean { return false; }
        override public function get showsCaret():Boolean { return false; }
        ]]>
        </fx:Script>
        <s:Label text="{data}" width="100%" />
    </s:ItemRenderer>
</fx:Component>
</s:itemRenderer>

它仍然允许alternatingItemColors样式,并且还会停用selectedhoverdown颜色。