Spark List排序问题

时间:2012-04-18 07:49:18

标签: flex

当我尝试对其数据提供程序进行排序时,我遇到了Spark List的奇怪问题。 这是我的列表(this._albums是一个XMLListCollection):

<s:List id="albumsList" width="100%" height="100%" useVirtualLayout="true"
                    dataProvider="{this._albums}"
        skinClass="DataList_AlbumsList"/>

这就是我的排序方式:

protected function onSortChosen(event:IndexChangeEvent):void
{
    var sortFct:Function;
    switch(event.newIndex)
    {

        // ...  

        case 2:
        {
            sortFct = statusAsc;
            break;
        }

        // ...

    }

    var sort:Sort = new Sort();
    sort.compareFunction = sortFct;
    this._albums.sort = sort;
    this._albums.refresh();

}

protected function statusAsc(a:XML, b:XML, fields:Array = null):int
{

    var statusA:String = ("@status" in a) ? a.@status : "preparing";
    var statusB:String = ("@status" in b) ? b.@status : "preparing";

    return ObjectUtil.stringCompare(statusA, statusB);

}

仅当排序函数(statusAsc)至少返回0(statusA == statusB)一次时才会出现此问题:排序后,列表中的某些项目有时会丢失,有时其他项目不会位于列表的顶部(列表顶部和项目之间存在间隙)等。

有什么问题?数据提供程序似乎总是正确的,如果在排序时没有任何相等性,问题就会消失......

0 个答案:

没有答案