Hi,

i've tried the list13 implementation, but although scrolling seems
smoother then it ever was, i'm kinda displeased with the time it takes
to fill the rows with content. I think my main concern is related to
the reuse of the rows, rather then how to fill them. I am wondering if
there isn't a way to prefill the listview and don;t reuse anything?

Regards,

Patrick


2010/1/6 Patrick Plaatje <[email protected]>:
> Hi Brion,
>
> if this arraylist would be a rather big list, it would be costly
> indeed, and it is a good suggestion. This list consists of just 10
> items (feedmessage objects) though. These feedmessages are just a set
> of getters and setters (of just small String objects) and are not doin
> any costly operations internally.
>
> I will try your suggestion though to see if this will help. I'm kinda
> clueless on what is so costly............
>
> Thanx for the suggestions, and will let you know tomorrow!
>
> Best,
>
> Patrick
>
> 2010/1/6 Brion Emde <[email protected]>:
>> I see some problems here:
>>
>> // Bind the data efficiently with the holder.
>> holder.titleText.setText(Html.fromHtml(((FeedMessage)Items.get
>> (position)).g etTitle()));
>> holder.descriptionText.setText(Html.fromHtml(((FeedMessage)Items.get
>> (positi on)).getDescription()));
>> Drawable d = null;
>> FeedMessage fm = (FeedMessage) Items.get(position);
>>
>> if that Items.get(position) is costly, you're wasting it, above. How
>> about:
>>
>>                // Bind the data efficiently with the holder.
>>                Drawable d = null;
>>                FeedMessage fm = (FeedMessage) Items.get(position);
>>                holder.titleText.setText(Html.fromHtml(fm.getTitle
>> ()));
>>                holder.descriptionText.setText(Html.fromHtml
>> (fm.getDescription()));
>>
>>
>>
>> On Jan 6, 12:57 pm, Patrick Plaatje <[email protected]> wrote:
>>> Hi,
>>>
>>> i've used the holder method, but adding or omitting this didn;t give
>>> me an increase or decrease in performance, my getView method is below:
>>>
>>>         @Override
>>>         public View getView(int position, View convertView, ViewGroup 
>>> parent) {
>>>
>>>                 // A ViewHolder keeps references to children views to avoid 
>>> unneccessary calls
>>>                 // to findViewById() on each row.
>>>                 ViewHolder holder;
>>>
>>>                 holder = new ViewHolder();
>>>
>>>                 // When convertView is not null, we can reuse it directly, 
>>> there is no need
>>>                 // to reinflate it. We only inflate a new View when the 
>>> convertView supplied
>>>                 // by ListView is null.
>>>                 if (convertView == null){
>>>                         convertView = 
>>> mInflater.inflate(R.layout.article_row, null);
>>>
>>>                 // Creates a ViewHolder and store references to the two 
>>> children views
>>>                 // we want to bind data to.
>>>                         holder.titleText = (TextView) 
>>> convertView.findViewById(R.id.article_title);
>>>                         holder.descriptionText = (TextView)
>>> convertView.findViewById(R.id.article_description);
>>>                         holder.icon = (ImageView) 
>>> convertView.findViewById(R.id.article_thumb);
>>>
>>>                         convertView.setTag(holder);
>>>                 } else {
>>>                         // get holder back...much faster than inflate
>>>                         holder = (ViewHolder) convertView.getTag();
>>>                 }
>>>
>>>                 // Bind the data efficiently with the holder.
>>>                 
>>> holder.titleText.setText(Html.fromHtml(((FeedMessage)Items.get(position)).g 
>>> etTitle()));
>>>                 
>>> holder.descriptionText.setText(Html.fromHtml(((FeedMessage)Items.get(positi 
>>> on)).getDescription()));
>>>
>>>                 Drawable d = null;
>>>                 FeedMessage fm = (FeedMessage) Items.get(position);
>>>
>>>         if(fm.getEnclosures().size() > 0){
>>>                 String urlString = fm.getEnclosures().get(0);
>>>             dm.fetchDrawableOnThread(urlString, holder.icon);
>>>         } else {
>>>                 d = 
>>> _context.getResources().getDrawable(R.drawable.thumb_holder);
>>>                 holder.icon.setImageDrawable(d);
>>>         }
>>>         if(fm.getGuid() != null){
>>>                 convertView.setId(position);
>>>         }
>>>
>>>                 return convertView;
>>>         }
>>>
>>>         static class ViewHolder {
>>>                 TextView descriptionText;
>>>                 TextView titleText;
>>>                 ImageView icon;
>>>         }
>>>
>>> regards,
>>>
>>> Patrick
>>>
>>> 2010/1/6 Vince <[email protected]>:
>>>
>>>
>>>
>>>
>>>
>>> > What does your getView code look like. Are re-inflating your row view
>>> > every time it's called, are there multiple views for the rows etc?
>>>
>>> > Vince
>>>
>>> > On Jan 6, 10:18 am, Patrick Plaatje <[email protected]> wrote:
>>> >> Hi all,
>>>
>>> >> for my app i'm using a listview to display rss news articles. All goes
>>> >> well, and the implementation is almost done. But when using my app,
>>> >> i'm not really satisfied with the "smoothness" and user experience of
>>> >> it. The main problem is that when i scroll through the listview, which
>>> >> contains an image for each row in the listview, the scrolling isn;t
>>> >> smooth, it executes the getview override every time. I already threw
>>> >> out the "holder startegy", as it slowed the scrolling...
>>>
>>> >> any thoughts?
>>>
>>> >> Thanx,
>>>
>>> >> Patrick
>>>
>>> > --
>>> > You received this message because you are subscribed to the Google
>>> > Groups "Android Developers" group.
>>> > To post to this group, send email to [email protected]
>>> > To unsubscribe from this group, send email to
>>> > [email protected]
>>> > For more options, visit this group at
>>> >http://groups.google.com/group/android-developers?hl=en
>>>
>>> --
>>> Met vriendelijke groet,
>>>
>>> Patrick Plaatje
>>>
>>> NDC|VBK de uitgevers
>>> Sixmastraat 32, 8915 PA Leeuwarden
>>> Postbus 394, 8901 BD Leeuwarden
>>> T   (058) - 284 5044
>>> M  (06) - 158 966 34
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Android Developers" group.
>> To post to this group, send email to [email protected]
>> To unsubscribe from this group, send email to
>> [email protected]
>> For more options, visit this group at
>> http://groups.google.com/group/android-developers?hl=en
>>
>
>
>
> --
> Met vriendelijke groet,
>
>
> Patrick Plaatje
>
> NDC|VBK de uitgevers
> Sixmastraat 32, 8915 PA Leeuwarden
> Postbus 394, 8901 BD Leeuwarden
> T   (058) - 284 5044
> M  (06) - 158 966 34
>



-- 
Met vriendelijke groet,


Patrick Plaatje

NDC|VBK de uitgevers
Sixmastraat 32, 8915 PA Leeuwarden
Postbus 394, 8901 BD Leeuwarden
T   (058) - 284 5044
M  (06) - 158 966 34
-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to