2012-01-10 66 views
0

当我更新的火花名单如下:火花列表控件显示在数据提供程序更新数据不完整

searchView.gridView.dataProvider = new ArrayCollection(data); 

我有时会在列表中显示的数组“数据”完整的数据,但有时只有前四项。我检查并设置后,阵列和dataProvider始终具有正确数量的条目。

这里是从MXML列表代码:

<s:List id="gridView" width="1024" height="390" itemRenderer="com.xxx.xxx.view.component.GridViewItemRenderer"> 
    <s:layout> 
     <s:TileLayout rowHeight="195" columnWidth="242" requestedColumnCount="4" horizontalGap="0" verticalGap="0" /> 
    </s:layout> 
</s:List> 

我想不通为什么它有时显示的一切,然后再显示正好位于第一行。

更新:它似乎以某种方式连接到使用TileLayout。当我删除布局时,它总是显示所有条目。

更新2:它也似乎只发生在我从数据提供者(空数组)中没有项目到n个项目时。如果已经显示了项目并且数据提供者用更多或更少的项目进行更新。

+0

你如何填充你的数组?通过远程服务? – LoremIpsum 2012-01-10 10:39:48

+0

该数组是通过函数调用从服务单例返回的。该数组是在函数调用中构建的,但没有连接到远程服务。这是设置数据提供者之前设置“数据”数组的原因。此外,阵列的数量在任何时候都是正确的。 – DasAntonym 2012-01-10 10:53:58

+0

在dataprovider – Exhausted 2012-01-11 11:24:51

回答

1

我有同样的问题。我只是使用了乐队援助。如果你这样做,它应该显示所有。

var myLayout:LayoutBase = gridView.layout; 
gridView.layout = null; 
gridView.layout = myLayout; 

另一种选择就是创建一个新的布局对象和数据提供程序后设置。

var newLayout = new TileLayout(); 
newLayout.rowHeight = 195; 
newLayout.columnWidth = 242; 
newLayout.requestedColumnCount = 4; 
newLayout.horizontalGap = 0; 
newLayout.verticalGap = 0; 

gridView.dataProvider = newDataProvider; 
gridView.layout = newLayout; 
相关问题