플렉스 3를 사용하고
당신은 당신의 문제를 해결하기 위해 labelFunction
를 사용할 수 있습니다.
<?xml version="1.0" encoding="utf-8"?>
<mx:Application creationComplete="init()" layout="absolute" xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
private static const DATA_LENGTH:Number = 100;
[Bindable]
private var dp:ArrayCollection;
private function countFinction(item:Object):String
{
return (dp.getItemIndex(item) + 1).toString();
}
private function init():void
{
var dataArray:Array = [];
for (var i:int = 0; i < DATA_LENGTH; i++)
{
var item:Object = { firstName: "First" + (i + 1), lastName: "Last" + (i + 1) };
dataArray.push(item);
}
dp = new ArrayCollection(dataArray);
}
]]>
</mx:Script>
<mx:List dataProvider="{dp}" height="500" horizontalCenter="0" itemRenderer="TestRenderer"
labelFunction="countFinction" verticalCenter="0" width="500" />
</mx:Application>
당신은 다음과 같은 테스트 렌더러를 사용할 수 있습니다 : 간단한 테스트 응용 프로그램의
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox implements="mx.controls.listClasses.IDropInListItemRenderer" xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import mx.controls.listClasses.BaseListData;
private var _listData:BaseListData;
/**
* @inheritDoc
*/
public function get listData():BaseListData
{
return _listData;
}
[Bindable(event = "listDataChanged")]
/**
* @inheritDoc
*/
public function set listData(value:BaseListData):void
{
if (value == _listData)
return;
_listData = value;
dispatchEvent(new Event("listDataChanged"));
}
]]>
</mx:Script>
<mx:Label fontWeight="bold" text="{listData.label}" />
<mx:Label text="{data.firstName + ' ' + data.lastName}" />
</mx:HBox>
내 목록 1000 개 항목에 가깝게 표시, 그래서 나는 것 지정 – midhunhk
사실 'verticalScrollPosition'은 뷰에서 벗어난 픽셀의 수를 나타내지 만 List (DataGrids and Trees)에서는 이러한 항목의 수를 나타냅니다. 그것을 증가 시키거나 감소 시키십시오 - 목록은 픽셀이 아닌 항목별로 스크롤합니다. – moropus
그건 시원한 관찰이었는데, 캔버스와 같은 모든 것을 픽셀 단위로 스크롤한다고 생각했습니다. 리스트 기반 아이템 들과는 다르다. 나는 명심할 것이다, 이것은 유용 할 수있다 :) – midhunhk