如何阻止在列表中选择项目?假设您想将其用于显示或其他原因。
答案 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。