のFlex 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件近くに表示するので、私なりに使用しています私のプロジェクトでこれを使用しています。 'verticalScrollPosition'は、表示されていないアイテム(可視リストの上)のアイテムの数を示していますか? – midhunhk
実際には 'verticalScrollPosition'はビューから外れているピクセルの数を示しますが、List(DataGridsとTrees)ではそのような項目の数を示します。インクリメントまたはデクリメントしてください。リストはピクセル単位ではなく項目単位でスクロールします。 – moropus
これはすばらしい所見ですが、私はいつもCanvasのようにピクセルでスクロールすると思っていました。 Listベースのアイテムとは異なります。私は心に留めておきます、これは便利です:) – midhunhk