Apache flex (flex mobile)如何在按下左键或右键时隐藏列表中的黑色边框

Apache flex (flex mobile)如何在按下左键或右键时隐藏列表中的黑色边框,apache-flex,mobile,flex4,border,Apache Flex,Mobile,Flex4,Border,这是黑波特: 这是我的代码: <s:List id="channelsPart" left="120" right="80" top="50" change="onChannelsChange(event)" dataProvider="{channels=new ArrayList(data.cloud.channels)}" labelField="title" requireSelection="true" fontFamil

这是黑波特:

这是我的代码:

    <s:List id="channelsPart" left="120" right="80" top="50" change="onChannelsChange(event)"
        dataProvider="{channels=new ArrayList(data.cloud.channels)}" labelField="title"
        requireSelection="true"
        fontFamily="TwinCen"
        fontSize="24"
        alternatingItemColors="[]"
        borderVisible="false"
        contentBackgroundAlpha="0"
         selectionColor="0"
        >

    <s:itemRenderer >
        <fx:Component>
            <s:ItemRenderer>
                <fx:Script>
                    <![CDATA[
                        import mx.core.UIComponent;
                        override public function set data(value:Object):void {
                            //sn.text = String(itemIndex+1);
                            txt.text = String(value.title);
                            //txt.label = String(value.title);
                        }
                    ]]>
                </fx:Script>
                 <!-- <s:BitmapImage source="assets/sohupp-login-btn-login.png" width="70" height="30" scaleMode="stretch"  /> -->
                 <s:Label id="txt" width="70" height="30"  verticalAlign="middle"  textAlign="center"   backgroundAlpha="0" />
            </s:ItemRenderer>
        </fx:Component>
    </s:itemRenderer>
</s:List>


那么我能做些什么呢,谢谢

当您在列表上使用键盘导航时,黑色边框是正在更改的选择指示器。我不确定您是否需要在移动应用程序中担心这一点,但它可能也出现在设备上

在任何情况下,您都可以使用
itemrender
autodrabackground
属性禁用自动在渲染器上绘制背景/边框的默认功能

在声明项目渲染器的行上尝试以下操作:

<s:ItemRenderer autoDrawBackground="false">
    <s:itemRenderer>
        <fx:Component>
            <s:ItemRenderer autoDrawBackground="false">
                <fx:Script>
                    <![CDATA[
                        import mx.core.UIComponent;
                        override public function set data(value:Object):void {
                            txt.text = String(value.title);
                        }
                    ]]>
                </fx:Script>
                <s:states>
                    <s:State name="normal"/>
                    <s:State name="selected"/>
                </s:states>
                <s:Rect includeIn="selected" top="0" left="0" right="0" bottom="0">
                    <s:fill>
                        <s:SolidColor color="#FF0000" alpha=".25"/>
                    </s:fill>
                </s:Rect>
                <s:Label id="txt" width="70" height="30"  verticalAlign="middle"  textAlign="center"   backgroundAlpha="0" />
            </s:ItemRenderer>
        </fx:Component>
    </s:itemRenderer>

如果仍要绘制背景,可以向渲染器添加一些简单的视图状态:

<s:ItemRenderer autoDrawBackground="false">
    <s:itemRenderer>
        <fx:Component>
            <s:ItemRenderer autoDrawBackground="false">
                <fx:Script>
                    <![CDATA[
                        import mx.core.UIComponent;
                        override public function set data(value:Object):void {
                            txt.text = String(value.title);
                        }
                    ]]>
                </fx:Script>
                <s:states>
                    <s:State name="normal"/>
                    <s:State name="selected"/>
                </s:states>
                <s:Rect includeIn="selected" top="0" left="0" right="0" bottom="0">
                    <s:fill>
                        <s:SolidColor color="#FF0000" alpha=".25"/>
                    </s:fill>
                </s:Rect>
                <s:Label id="txt" width="70" height="30"  verticalAlign="middle"  textAlign="center"   backgroundAlpha="0" />
            </s:ItemRenderer>
        </fx:Component>
    </s:itemRenderer>


另一方面,Adobe建议您在移动应用程序中使用或替代
ItemRenderer
。它们针对移动设备进行了优化,但没有那么灵活,因为您必须编写一些Actionscript来扩展它们并做一些奇特的事情。在简单的用例中,使用常规的
ItemRenderer
可能没什么大不了的:)

hi Sunil D.,当我按下左键或右键时,如何捕获事件,比如这个名称:selectedIndexChange event。一种方法是添加
KeyboardEvent.KEY\u DOWN
事件处理程序到列表中。然后在事件处理程序中,您可以检查
event.keyCode
的值,查看它是否等于Keyboard.LEFT或Keyboard.RIGHT。我已经有一段时间没有做这样的事情了,我忘记了如果需要做一些特殊的事情,b/c
列表也在监听击键。另一种方法是侦听
indexchangeent.CHANGE
事件。但是,如果索引通过鼠标或触摸交互以及通过键盘进行更改,也会发送此命令。