2010-07-31 71 views
0

scolling List组件内的图像时,我有一个显示的照片就像他们的列表:奇怪显示Flex中

   <s:List id="thumnPhotosList" 
        dataProvider="{_model.photoAlbumToCreate.photos}" 
        height="450" 
        itemRenderer="PhotoRenderer" > 
       <s:layout> 
        <s:TileLayout orientation="columns" 
            requestedRowCount="4" 
            requestedColumnCount="3" /> 
       </s:layout> 
      </s:List> 

和PhotoRenderer有这样的代码:

...... 

<mx:Image source="{_model.url + theAlbumPhoto.thumbPhotoURL}" 
          visible="{theAlbumPhoto.ready}" 
          maintainAspectRatio="true" 
          maxWidth="{Constants.DEFAULT_ALBUM_PHOTO_WIDTH}" maxHeight="{Constants.DEFAULT_ALBUM_PHOTO_HEIGHT}" />  

........ 

除了当工作正常照片数量变高,滚动条出现,开始出现怪异现象:它开始显示与其应有的照片不同的照片,如果我滚动回到开始处并再次滚动到新照片,其他照片有时会出现正确的照片,有时不会显示。不知道如何解决这个问题,有什么想法?你也可以推荐不同的方式,而不是使用s:List,如果这样做更容易。

+1

你能提交一个可复制的测试用例的错误吗? http://bugs.adobe.com/flex – 2010-07-31 12:15:39

+0

我试图重现与单独的应用程序的问题,但我不能。可能是由于我的应用程序的复杂性或者它不起作用。我发布了以下适用于我的代码,以防某人遇到类似问题。 – Tam 2010-08-03 04:39:24

回答

0

因为我无法弄清楚问题是什么,也无法在独立应用程序中重现它。我想出了以下代码解决该问题:

   <s:Scroller id="photoScroller" 
         width="100%" 
         visible="{_model.photoAlbumToCreateOrUpdate.photos.length > 0}" 
         horizontalScrollPolicy="off" verticalScrollPolicy="auto" 
         skinClass="com.lal.skins.PhotoAlbumScrollerSkin" 
         top="50" bottom="0"> 

        <s:DataGroup id="thumnPhotosList" 
            dataProvider="{_model.photoAlbumToCreateOrUpdate.photos}" 
            itemRenderer="AlbumPhotoThumbRenderer" > 
         <s:layout> 
          <s:TileLayout orientation="rows" 
              requestedRowCount="4" 
              requestedColumnCount="4" /> 
         </s:layout> 
        </s:DataGroup> 
      </s:Scroller> 
0

我有与文本列表相同的问题,我认为它的填充问题,组织它可能帮助所有组件的pading。

0

我有同样的问题,在我使用TileList中自定义项目渲染一个图像组件。我没有真正知道如何修复它,但问题是项目渲染器中Image组件的源属性。

使用项目渲染器的想法是使用data变量来访问提供渲染器的项目。 _modeltheAlbumPhoto变量在你的渲染器中引用了什么?我最终做的是将源属性更改为更像data.image_path,并决定开始工作。

如果您对您的解决方案感到满意,希望这至少可以帮助别人。