Re the remaining space: I realize you have to scroll quite a bit (of course it differed depending on the size of my window) but I wonder if at any time the space available was actually larger than the full height of a row.  That’s the key…

 

Both your list issues are funky, wish I had some better suggestions for you.  For the TileList images maybe try setting the image source to null and then afterward setting it to the real value?  So in setValue set it to null, then enter the if statement and set it to the real value?  Or maybe call invalidate?  It should work, it’s funky.  Of course you could also just load the image from the web server and assume the browser cache will take care of it for you (turn it into a JPG or SWF instead of a GIF).

 

For the review list I think there’s basically a bug in the variableRowHeight code, only thing you could try is calling invalidate() (or maybe invalidateLayout) on the List and see if it resets its content rows?  A Repeater also would do pretty well here, you could simulate the alternating background color pretty easily by doing some simple test in the initialize statement if event.target.getRepeaterIndex() % 2 == 0 and setting the backgroundColor appropriately.

 

Sorry to not be of more help,

 

Matt

 


From: flexcoders@yahoogroups.com [mailto:flexcoders@yahoogroups.com] On Behalf Of Devin Holloway
Sent: Thursday, July 21, 2005 3:45 PM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] Re: Odd behaviors with List controls

 

Hi Matt, thanks for responding!

It seems like you'd only have extra space in a list control if the
height of the control is greater then the combined height of all the
elements in the control. That wouldn't be the case in this example,
since you have to scroll vertically to see all the items. If you
scroll to where the last row is completely visible, you can still
keep scrolling quite a bit.

I never did fix the second item, it's just that the steps to
reproduce it have changed. Let me first explain the criteria on what
must exist to create the bug.

You have to have a dynamic image in a non-visible cell of the list
(due to the list being scrolled up or down). Then you reload the data
provider causing the scrolling to reset itself. Any cell that shares
the same index as the previously hidden cell, that also becomes
visible due to the resetting of the scrollbar, that also uses an
embedded image, will be affected.

So, in my application,
http://default.devinholloway.com/flex/capoeira/, click on the "Books"
link. With my screen resolution, I can see two columns and three rows
of books (all dynamic images). With the scroll bar still at the top,
click to go to page 2. The first two rows use the embedded "no image"
icon. That's an example of it working correctly. Now click to back to
page 1 and then scroll all the way to the bottom. The first two rows
of books should be completely hidden (and hopefully you'll notice
that huge amount of leftover space that the bottom). While the scroll
bar is still at the bottom, click to go to page two.  The first two
rows of books on page two, which used to show the "no image" embedded
icon, now show the same book covers that the first rows on the page 1
does, only resized to the height of the "no image" icon.

If you want to see happen even more, scroll down to the bottom of the
second page, you'll see that the last two products show the photos of
the last two products on page one (again resized).

for the 4th issue, you need to be on the "books" page, then the rest
of the steps are the same.


--- In flexcoders@yahoogroups.com, "Matt Chotin" <[EMAIL PROTECTED]> wrote:
> Sorry it took so long to respond to this, you may have addressed
some of
> these issues already:
>

>
> 1)       I believe the extra row is actually just leftover space in
the
> list.  We don't show partial rows unless you explicitly set a count
that
> would cause the row to appear.
>
> 2)       I think you've fixed this on the site as it is now?
>
> 3)       This resizing might be a bug in our List class.  The extra
row
> is simply because we have a minimum number of cells that need to get
> rendered to allow scrolling with variableRowHeight.
>
> 4)       Since you've added more content since your post I can't
> reproduce this.
>

>
> Matt
>

>
> ________________________________
>
> From: flexcoders@yahoogroups.com
[mailto:flexcoders@yahoogroups.com] On
> Behalf Of Devin Holloway
> Sent: Friday, July 15, 2005 9:07 AM
> To: flexcoders@yahoogroups.com
> Subject: [flexcoders] Odd behaviors with List controls
>

>
> I've been noticing a lot of odd behavior with the List and TileList
> controls. The application I'm working on is located at:
>
> http://default.devinholloway.com/flex/capoeira/
>
> You should see the list of titles on the left hand side. If you
> scroll
> the product list all the way down, you'll see an empty row. Every
> time
> I use a list-based control, it always produces at least one extra
> empty
> row at the bottom. Is this expected behavior?
>
> Issue #2: Keep the product list scrolled to the bottom to where the
> top
> product for both tilelist columns are not visible (my browser is
> maximized at 1024x768), and then use the NumericStepper pager
control
> to jump to the second page of results. When that loads, the top
> product
> for each column should be using the "no image" book cover. But
> instead,
> they're using the same two images for the top two products on the
> first
> page of results, only resized to same height as the "no image"
icon.
> Now scroll to the bottom of the second page, and the last two
> products
> might also display the same two images rather then the "no image"
> icon.
> This is fairly consistent behavoir when flipping through pages.
>
> Issue #3: Go back to the first page and select the first product.
On
> the right hand side, select the "customer reviews" accordion pane.
> This
> list displaying these reviews have variableRowHeight and wordWrap
> turned on. When you first select the customer reviews, the list
isn't
> sized correctly. It's as if it figures out the height of the
tallest
> list item, and uses that height for all visible list items. You have
> to
> scroll up and down to get it to recalculate and get each list item
> sized correctly. You should also see one extra blank list item at
the
> bottom like I noted in the first issue.
>
> Issue #4: Now use the NumericStepper at the bottom of the reviews
to
> flip to the second page of reviews, and scroll to the bottom. The
> second page has 5 review list items, although, the scroll bar stops
> at
> the end of the third item and won't let you scroll any further.
> Sometimes if you scroll up and down, or go to another page of
reviews
> and come back, it'll let you see all of the reviews on this page.
>
> Here's the code snippets for both the lists:
>
> Product Tile List:
>
> <mx:TileList id="productList"
> dataProvider="{aws.ItemSearch.result.Items.Item}"
> cellRenderer="ProductListCellRenderer" liveScrolling="false"
> change="aws.ItemLookup.send();" width="100%" height="100%"
> itemWidth="225" itemHeight="125"/>
>
>
> Product Tile List Cell Renderer:
>
> <mx:Script>
> <![CDATA[
>       [Embed(source="images/noimg.gif")]
>       var noimage:String;     
>            
>       function setValue(str:String, item:Object, sel:String) {
>             if (item==undefined) {
>                   visible = false;
>                   return;
>             } else {
>                   title.text=item.ItemAttributes.Title;
>                   author.text=(item.ItemAttributes.Author)?"By "
> + item.ItemAttributes.Author:"";
>                   price.text=(item.Offers.Offer)?"Price: " +
> item.Offers.Offer.OfferListing.Price.FormattedPrice:"";
>                   availability.text=
> (item.Offers.Offer.OfferListing.Availability)?
> item.Offers.Offer.OfferListing.Availability:"Currently unavailable";
>                   if (item.SmallImage) {
>                         image.source=item.SmallImage.URL;
>                         image.width=item.SmallImage.Width;
>                         image.height=item.SmallImage.Height;     
>                              
>                   } else {
>                         image.source=noimage;
>                         image.width=60;
>                         image.height=40;                 
>                   }
>                   visible=true;
>             }
>       }
> ]]>
> </mx:Script>
>
> <mx:Text id="title" width="225" height="30" selectable="false"
> styleName="productTitle"/>
> <mx:HBox width="100%" height="100%">
>       <mx:Image id="image"/>
>       <mx:VBox>
>             <mx:Label id="author" width="157"/>
>             <mx:Text id="availability" width="157"
> selectable="false"/>
>             <mx:Label id="price" styleName="productPrice"/>
>       </mx:VBox>
> </mx:HBox>
>
>
> Customer Reviews List:
>
> <mx:List
> dataProvider="{aws.ItemLookup.result.Items.Item.Cu
> stomerReviews.Review}"
> cellRenderer="CustomerReviewsCellRenderer" variableRowHeight="true"
> wordWrap="true" width="100%" height="100%"/>
>
>
> Customer Reviews List Cell Renderer:
>
> <mx:Script>
> <![CDATA[
>       [Embed(source="images/stars-0-0.gif")]
>       var stars00:String;
>       [Embed(source="images/stars-0-5.gif")]
>       var stars05:String;
>       [Embed(source="images/stars-1-0.gif")]
>       var stars10:String;
>       <!-- and so forth -->
>
>       function setValue(str:String, item:Object, sel:String) {
>             if (item==undefined) {
>                   visible = false;
>                   return;
>             } else {
>                   switch (item.Rating) {
>                   case 0 :   stars.source=stars00; break;
>                   case 0.5 : stars.source=stars05; break;
>                   case 1 :   stars.source=stars10; break;
>                   <!-- and so forth -->
>                   }
>
>                   summary.text=item.Summary;
>                   review.htmlText=item.Content;
>                   visible=true;
>             }
>       }
> ]]>
> </mx:Script>
>
> <mx:HBox>
>       <mx:Image id="stars" width="64" height="12"/>
>       <mx:Label id="summary" styleName="productTitle"/>
> </mx:HBox>
>
>
>
>
> --
> Flexcoders Mailing List
> FAQ:
http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> Search Archives:
> http://www.mail-archive.com/flexcoders%40yahoogroups.com
>
>
>
>
> SPONSORED LINKS
>
> Computer software testing
> <http://groups.yahoo.com/gads?
t=ms&k=Computer+software+testing&w1=Comput
>
er+software+testing&w2=Macromedia+flex&w3=Development&w4=Software+deve
lo
> per&c=4&s=93&.sig=kh2CguJwmatU5oBXjFo9Rg>
>
> Macromedia flex
> <http://groups.yahoo.com/gads?
t=ms&k=Macromedia+flex&w1=Computer+softwar
>
e+testing&w2=Macromedia+flex&w3=Development&w4=Software+developer&c=4&
s=
> 93&.sig=dAUcEV7do91-wrRtVS641g>
>
> Development
> <http://groups.yahoo.com/gads?
t=ms&k=Development&w1=Computer+software+te
>
sting&w2=Macromedia+flex&w3=Development&w4=Software+developer&c=4&s=93
&.
> sig=AlxNUQBOI7Io7S7nhmxV0Q>
>
> Software developer
> <http://groups.yahoo.com/gads?
t=ms&k=Software+developer&w1=Computer+soft
>
ware+testing&w2=Macromedia+flex&w3=Development&w4=Software+developer&c
=4
> &s=93&.sig=QWIit8JayomoIHLVkV3FDg>
>

>

>

>
> ________________________________
>
> YAHOO! GROUPS LINKS
>

>
> *      Visit your group "flexcoders
> <http://groups.yahoo.com/group/flexcoders> " on the web.
>        
> *      To unsubscribe from this group, send an email to:
>       [EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>
>        
> *      Your use of Yahoo! Groups is subject to the Yahoo! Terms of
> Service <http://docs.yahoo.com/info/terms/> .
>

>
> ________________________________





--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com




YAHOO! GROUPS LINKS




Reply via email to