如何防止在列表中选择项目

时间:2012-09-03 22:36:22

标签: list flex flex4 flex-spark

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

1 个答案:

答案 0 :(得分:2)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 解决方案1 ​​
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
在更改处理程序中调用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,则之前的行代码允许您获取将要选择的项目。对于其他类型的数据列表或集合,它可能略有不同。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 解决方案2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 您还可以通过在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中提到set set为false。