0

如何防止在列表中选择项目?假设您想将其用于显示或其他原因。

4

1 回答 1

2

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~解决方法一
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~
像这样在更改的处理程序中调用 preventDefault :

<s:List id="list" dataProvider="{myCollection}" changing="list_changingHandler(event)"/>

列表更改处理程序:

protected function list_changingHandler(event:IndexChangeEvent):void {
    var item:Object = list.dataProvider.getItemAt(event.newIndex);

    event.preventDefault();
}

event.preventDefault(); 防止项目被选中。如果您正在使用 ArrayCollection,前面的代码允许您获取将要选择的项目。对于其他类型的数据列表或集合,它可能略有不同。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~解决方法二~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~ 你还可以通过在 mouseDown 事件上调用 stopPropagation 方法来防止在项目渲染器中选择项目,如下所示:

<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark" >

    <s:CheckBox id="enabledCheckbox" mouseDown="event.stopPropagation();"/>


</s:ItemRenderer>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~解决方案3
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~ @RIAstar 提到在ItemRenderer 中设置为false。

于 2012-09-03T22:42:38.337 回答