2012-09-03 51 views

回答

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 ~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~ 您也可以防止在项目渲染器选择了一个项目,通过调用stopPropagation方法的mouseDown事件,像这样:

<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。

+0

对我来说,将ItemRenderer的enabled属性设置为false将更容易 – RIAstar

+1

将ItemRenderer的enabled属性设置为false会使与列表项目的所有交互都处于非活动状态。如果希望与内容互动,但没有突出显示/聚焦/选择列表项目,则不能选择此选项。 – Thistledowne

相关问题