主要操作包括:显示提示,使用图标,编辑列表条目中数据。
1.使用数据提示:
当鼠标停留在条目上时,可以显示该条目的相关数据提示。
当利用滚动条时,可以显示滚动条的相关提示。
在列表控件中使用showDataTips和showScrollTips属性指明是否显示条目提示和滚动条提示。
1 <?xml version="1.0" encoding="utf-8"?> 2 <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 3 xmlns:s="library://ns.adobe.com/flex/spark" 4 xmlns:mx="library://ns.adobe.com/flex/mx" fontSize="14"> 5 <fx:Script> 6 <![CDATA[ 7 8 9 //定义数据条目显示的内容,在列表控件中,该方法只有一个参数,为当前的数据条目 10 11 private function myDataTipFunction(item:Object):String 12 { 13 return "您查看的内容为:"+item.label+item.data; 14 } 15 16 /* 17 定义滚动条显示的提示内容,该方法包括2个参数 18 direction为滚动条的方向 19 position为滚动条离控件顶端的距离 20 */ 21 private function scrollTipFunction(direction:String,position:Number):String 22 { 23 if(direction == "vertical") 24 return "查看剩余条目" 25 else 26 return ""; 27 28 } 29 30 ]]> 31 </fx:Script> 32 33 <fx:Declarations> 34 <!-- 将非可视元素(例如服务、值对象)放在此处 --> 35 36 37 <fx:Model id="myPhone"> 38 <!--定义列表控件所需的数据--> 39 <states> 40 <state label="诺基亚" data="nokia"/> 41 <state label="摩托罗拉" data="moto"/> 42 <state label="索爱" data="se"/> 43 <state label="三星" data="sum"/> 44 <state label="Palm" data="pal"/> 45 <state label="黑莓" data="bb"/> 46 <state label="联想" data="le"/> 47 <state label="其他" data="etc"/> 48 </states> 49 </fx:Model> 50 </fx:Declarations> 51 52 <mx:Panel title="列表控件例子" paddingTop="10" paddingBottom="10" paddingLeft="10" paddingRight="10" width="340"> 53 <mx:Label text="选择手机品牌"/> 54 <!--定义列表控件,数据提供器为myPhone中state的内容,控件自动读取label标签内容显示--> 55 <mx:List id="source" color="blue" width="100%" height="100%" 56 dataProvider="{myPhone.state}" 57 rollOverColor="#80FF00" showDataTips="true" 58 showScrollTips="true" dataTipFunction="myDataTipFunction" scrollTipFunction="scrollTipFunction"/> 59 60 </mx:Panel> 61 </s:WindowedApplication>
效果如图:
2.在列表控件中使用图标
在列表控件中可以使用iconField和iconFunction属性定义图标相关的属性以及方法。
1 <?xml version="1.0" encoding="utf-8"?> 2 <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 3 xmlns:s="library://ns.adobe.com/flex/spark" 4 xmlns:mx="library://ns.adobe.com/flex/mx" fontSize="14"> 5 <fx:Script> 6 <![CDATA[ 7 //定义条目中所使用的图标 8 [Embed(source="assets/mm-icon.png") ] 9 public var iconSymbol:Class; 10 11 12 13 ]]> 14 </fx:Script> 15 16 <fx:Declarations> 17 <!-- 将非可视元素(例如服务、值对象)放在此处 --> 18 19 20 <fx:Model id="myPhone"> 21 <!--定义列表控件所需的数据--> 22 <states> 23 <state label="诺基亚" data="nokia" myIcon="iconSymbol"/> 24 <state label="摩托罗拉" data="moto" myIcon="iconSymbol"/> 25 <state label="索爱" data="se" myIcon="iconSymbol"/> 26 <state label="三星" data="sum" myIcon="iconSymbol"/> 27 <state label="Palm" data="pal" myIcon="iconSymbol"/> 28 <state label="黑莓" data="bb" myIcon="iconSymbol"/> 29 <state label="联想" data="le" myIcon="iconSymbol"/> 30 <state label="其他" data="etc" myIcon="iconSymbol"/> 31 </states> 32 </fx:Model> 33 </fx:Declarations> 34 35 <mx:Panel title="列表控件例子" paddingTop="10" paddingBottom="10" paddingLeft="10" paddingRight="10" width="340"> 36 <mx:Label text="选择手机品牌"/> 37 <!--定义列表控件,数据提供器为myPhone中state的内容,控件自动读取label标签内容显示--> 38 <mx:List id="source" color="blue" width="100%" height="100%" 39 dataProvider="{myPhone.state}" 40 rollOverColor="#80FF00" iconField="myIcon"/> 41 42 </mx:Panel> 43 </s:WindowedApplication>
iconField="myIcon":指明条目的图标由数据中的myIcon属性提供。
3.编辑列表条目中数据
编辑列表中的数据时,需要将editable属性设置为true。
1 <?xml version="1.0" encoding="utf-8"?> 2 <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 3 xmlns:s="library://ns.adobe.com/flex/spark" 4 xmlns:mx="library://ns.adobe.com/flex/mx" fontSize="14"> 5 <fx:Script> 6 <![CDATA[ 7 //定义条目中所使用的图标 8 9 import mx.events.ListEvent; 10 //鼠标单击时触发的事件条目处于可编辑状态 11 private function itemEditBegin(event:ListEvent):void 12 { 13 state.text="当前状态为:可以编辑数据"; 14 } 15 //当编辑完条目,鼠标单击其他区域时触发的事件,条目处于编辑状态完成 16 private function itemEditEnd(event:ListEvent):void 17 { 18 state.text="当前状态为:完成编辑数据"; 19 } 20 21 //当单击条目时,显示条目显示的标签,在编辑后单击标签,显示更新后的标签值 22 private function showType(event:ListEvent):void 23 { 24 typee.text = event.target.selectedItem.label; 25 } 26 27 28 29 ]]> 30 </fx:Script> 31 32 <fx:Declarations> 33 <!-- 将非可视元素(例如服务、值对象)放在此处 --> 34 35 36 <fx:Model id="myPhone"> 37 <!--定义列表控件所需的数据--> 38 <states> 39 <state label="诺基亚" data="nokia" /> 40 <state label="摩托罗拉" data="moto" /> 41 <state label="索爱" data="se" /> 42 <state label="三星" data="sum" /> 43 <state label="Palm" data="pal" /> 44 <state label="黑莓" data="bb" /> 45 <state label="联想" data="le" /> 46 <state label="其他" data="etc" /> 47 </states> 48 </fx:Model> 49 </fx:Declarations> 50 51 <mx:Panel title="xianshitubiao" paddingTop="10" paddingBottom="10" paddingLeft="10" paddingRight="10" width="340" height="316"> 52 <mx:Label text="选择手机品牌"/> 53 <!--定义列表控件,数据提供器为myPhone中state的内容,控件自动读取label标签内容显示--> 54 <mx:List id="source" color="blue" width="100%" height="100%" 55 dataProvider="{myPhone.state}" 56 rollOverColor="#80FF00" editable="true" itemEditBeginning="itemEditBegin(event)" 57 itemEditEnd="itemEditEnd(event)" itemClick="showType(event)" 58 /> 59 <mx:Label id="state"/> 60 <mx:Label id="typee"/> 61 62 </mx:Panel> 63 </s:WindowedApplication>
效果如图: