在Flex中的List组件内滚动图像时显示奇怪的显示

时间:2010-07-31 02:14:00

标签: 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,如果这样可以更容易。

3 个答案:

答案 0 :(得分:0)

我遇到了与文本列表相同的问题,我认为它的填充问题,组织了它可能有用的所有组件的填充。

答案 1 :(得分: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>

答案 2 :(得分:0)

我在TileList中使用的自定义项目渲染器中的Image组件遇到了同样的问题。我修复它而不知道如何,但问题是项目渲染器中Image组件的source属性。

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

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